diff options
Diffstat (limited to 'man1p/find.1p')
-rw-r--r-- | man1p/find.1p | 696 |
1 files changed, 696 insertions, 0 deletions
diff --git a/man1p/find.1p b/man1p/find.1p new file mode 100644 index 000000000..6dbca5e73 --- /dev/null +++ b/man1p/find.1p @@ -0,0 +1,696 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "FIND" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" find +.SH NAME +find \- find files +.SH SYNOPSIS +.LP +\fBfind\fP \fB[\fP\fB-H | -L\fP\fB]\fP \fIpath\fP \fB...\fP \fB[\fP\fIoperand_expression\fP +\fB\&...\fP\fB]\fP +.SH DESCRIPTION +.LP +The \fIfind\fP utility shall recursively descend the directory hierarchy +from each file specified by \fIpath\fP, evaluating a +Boolean expression composed of the primaries described in the OPERANDS +section for each file encountered. +.LP +The \fIfind\fP utility shall be able to descend to arbitrary depths +in a file hierarchy and shall not fail due to path length +limitations (unless a \fIpath\fP operand specified by the application +exceeds {PATH_MAX} requirements). +.LP +The \fIfind\fP utility shall detect infinite loops; that is, entering +a previously visited directory that is an ancestor of the +last file encountered. When it detects an infinite loop, \fIfind\fP +shall write a diagnostic message to standard error and shall +either recover its position in the hierarchy or terminate. +.SH OPTIONS +.LP +The \fIfind\fP utility shall conform to the Base Definitions volume +of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines. +.LP +The following options shall be supported by the implementation: +.TP 7 +\fB-H\fP +Cause the file information and file type evaluated for each symbolic +link encountered on the command line to be those of the +file referenced by the link, and not the link itself. If the referenced +file does not exist, the file information and type shall be +for the link itself. File information for all symbolic links not on +the command line shall be that of the link itself. +.TP 7 +\fB-L\fP +Cause the file information and file type evaluated for each symbolic +link to be those of the file referenced by the link, and +not the link itself. +.sp +.LP +Specifying more than one of the mutually-exclusive options \fB-H\fP +and \fB-L\fP shall not be considered an error. The last +option specified shall determine the behavior of the utility. +.SH OPERANDS +.LP +The following operands shall be supported: +.LP +The \fIpath\fP operand is a pathname of a starting point in the directory +hierarchy. +.LP +The first argument that starts with a \fB'-'\fP , or is a \fB'!'\fP +or a \fB'('\fP , and all subsequent arguments shall +be interpreted as an \fIexpression\fP made up of the following primaries +and operators. In the descriptions, wherever \fIn\fP is +used as a primary argument, it shall be interpreted as a decimal integer +optionally preceded by a plus ( \fB'+'\fP ) or minus ( +\fB'-'\fP ) sign, as follows: +.TP 7 ++\fIn\fP +More than \fIn\fP. +.TP 7 +\fIn\fP +Exactly \fIn\fP. +.TP 7 +-\fIn\fP +Less than \fIn\fP. +.sp +.LP +The following primaries shall be supported: +.TP 7 +\fB-name\ \fP \fIpattern\fP +.sp +The primary shall evaluate as true if the basename of the filename +being examined matches \fIpattern\fP using the pattern matching +notation described in \fIPattern Matching Notation\fP . +.TP 7 +\fB-nouser\fP +The primary shall evaluate as true if the file belongs to a user ID +for which the \fIgetpwuid\fP() function defined in the System Interfaces +volume of +IEEE\ Std\ 1003.1-2001 (or equivalent) returns NULL. +.TP 7 +\fB-nogroup\fP +The primary shall evaluate as true if the file belongs to a group +ID for which the \fIgetgrgid\fP() function defined in the System Interfaces +volume of +IEEE\ Std\ 1003.1-2001 (or equivalent) returns NULL. +.TP 7 +\fB-xdev\fP +The primary shall always evaluate as true; it shall cause \fIfind\fP +not to continue descending past directories that have a +different device ID ( \fIst_dev\fP, see the \fIstat\fP() function +defined in the System +Interfaces volume of IEEE\ Std\ 1003.1-2001). If any \fB-xdev\fP primary +is specified, it shall apply to the entire +expression even if the \fB-xdev\fP primary would not normally be evaluated. +.TP 7 +\fB-prune\fP +The primary shall always evaluate as true; it shall cause \fIfind\fP +not to descend the current pathname if it is a directory. +If the \fB-depth\fP primary is specified, the \fB-prune\fP primary +shall have no effect. +.TP 7 +\fB-perm\ [-]\fP\fImode\fP +.sp +The \fImode\fP argument is used to represent file mode bits. It shall +be identical in format to the \fIsymbolic_mode\fP operand +described in \fIchmod\fP() , and shall be interpreted as follows. +To start, a template shall be assumed +with all file mode bits cleared. An \fIop\fP symbol of \fB'+'\fP shall +set the appropriate mode bits in the template; +\fB'-'\fP shall clear the appropriate bits; \fB'='\fP shall set the +appropriate mode bits, without regard to the contents of +process' file mode creation mask. The \fIop\fP symbol of \fB'-'\fP +cannot be the first character of \fImode\fP; this avoids +ambiguity with the optional leading hyphen. Since the initial mode +is all bits off, there are not any symbolic modes that need to +use \fB'-'\fP as the first character. +.LP +If the hyphen is omitted, the primary shall evaluate as true when +the file permission bits exactly match the value of the +resulting template. +.LP +Otherwise, if \fImode\fP is prefixed by a hyphen, the primary shall +evaluate as true if at least all the bits in the resulting +template are set in the file permission bits. +.TP 7 +\fB-perm\ [-]\fP\fIonum\fP +.sp +If the hyphen is omitted, the primary shall evaluate as true when +the file permission bits exactly match the value of the octal +number \fIonum\fP and only the bits corresponding to the octal mask +07777 shall be compared. (See the description of the octal +\fImode\fP in \fIchmod\fP() .) Otherwise, if \fIonum\fP is prefixed +by a hyphen, the primary shall +evaluate as true if at least all of the bits specified in \fIonum\fP +that are also set in the octal mask 07777 are set. +.TP 7 +\fB-type\ \fP \fIc\fP +The primary shall evaluate as true if the type of the file is \fIc\fP, +where \fIc\fP is \fB'b'\fP , \fB'c'\fP , +\fB'd'\fP , \fB'l'\fP , \fB'p'\fP , \fB'f'\fP , or \fB's'\fP for block +special file, character special file, +directory, symbolic link, FIFO, regular file, or socket, respectively. +.TP 7 +\fB-links\ \fP \fIn\fP +The primary shall evaluate as true if the file has \fIn\fP links. +.TP 7 +\fB-user\ \fP \fIuname\fP +The primary shall evaluate as true if the file belongs to the user +\fIuname.\fP If \fIuname\fP is a decimal integer and the +\fIgetpwnam\fP() (or equivalent) function does not return a valid +user name, \fIuname\fP +shall be interpreted as a user ID. +.TP 7 +\fB-group\ \fP \fIgname\fP +.sp +The primary shall evaluate as true if the file belongs to the group +\fIgname\fP. If \fIgname\fP is a decimal integer and the \fIgetgrnam\fP() +(or equivalent) function does not return a valid group name, \fIgname\fP +shall be interpreted as a group ID. +.TP 7 +\fB-size\ \fP \fIn\fP\fB[c]\fP +The primary shall evaluate as true if the file size in bytes, divided +by 512 and rounded up to the next integer, is \fIn\fP. +If \fIn\fP is followed by the character \fB'c'\fP , the size shall +be in bytes. +.TP 7 +\fB-atime\ \fP \fIn\fP +The primary shall evaluate as true if the file access time subtracted +from the initialization time, divided by 86400 (with any +remainder discarded), is \fIn\fP. +.TP 7 +\fB-ctime\ \fP \fIn\fP +The primary shall evaluate as true if the time of last change of file +status information subtracted from the initialization +time, divided by 86400 (with any remainder discarded), is \fIn\fP. +.TP 7 +\fB-mtime\ \fP \fIn\fP +The primary shall evaluate as true if the file modification time subtracted +from the initialization time, divided by 86400 +(with any remainder discarded), is \fIn\fP. +.TP 7 +\fB-exec\ \fP \fIutility_name\ \fP \fB[\fP\fIargument\fP\ ...\fB]\ ;\fP +.TP 7 +\fB-exec\ \fP \fIutility_name\ \fP \fB[\fP\fIargument\fP\ ...\fB]\ \ \fP +{}\ + +.sp +The end of the primary expression shall be punctuated by a semicolon +or by a plus sign. Only a plus sign that follows an argument +containing the two characters \fB"{}"\fP shall punctuate the end of +the primary expression. Other uses of the plus sign shall +not be treated as special. +.LP +If the primary expression is punctuated by a semicolon, the utility +\fIutility_name\fP shall be invoked once for each pathname +and the primary shall evaluate as true if the utility returns a zero +value as exit status. A \fIutility_name\fP or \fIargument\fP +containing only the two characters \fB"{}"\fP shall be replaced by +the current pathname. +.LP +If the primary expression is punctuated by a plus sign, the primary +shall always evaluate as true, and the pathnames for which +the primary is evaluated shall be aggregated into sets. The utility +\fIutility_name\fP shall be invoked once for each set of +aggregated pathnames. Each invocation shall begin after the last pathname +in the set is aggregated, and shall be completed before +the \fIfind\fP utility exits and before the first pathname in the +next set (if any) is aggregated for this primary, but it is +otherwise unspecified whether the invocation occurs before, during, +or after the evaluations of other primaries. If any invocation +returns a non-zero value as exit status, the \fIfind\fP utility shall +return a non-zero exit status. An argument containing only +the two characters \fB"{}"\fP shall be replaced by the set of aggregated +pathnames, with each pathname passed as a separate +argument to the invoked utility in the same order that it was aggregated. +The size of any set of two or more pathnames shall be +limited such that execution of the utility does not cause the system's +{ARG_MAX} limit to be exceeded. If more than one argument +containing only the two characters \fB"{}"\fP is present, the behavior +is unspecified. +.LP +If a \fIutility_name\fP or \fIargument\fP string contains the two +characters \fB"{}"\fP , but not just the two characters +\fB"{}"\fP , it is implementation-defined whether \fIfind\fP replaces +those two characters or uses the string without change. +The current directory for the invocation of \fIutility_name\fP shall +be the same as the current directory when the \fIfind\fP +utility was started. If the \fIutility_name\fP names any of the special +built-in utilities (see \fISpecial Built-In Utilities\fP ), the results +are undefined. +.TP 7 +\fB-ok\ \fP \fIutility_name\ \fP \fB[\fP\fIargument\fP\ ...\fB]\ ;\fP +.sp +The \fB-ok\fP primary shall be equivalent to \fB-exec\fP, except that +the use of a plus sign to punctuate the end of the primary +expression need not be supported, and \fIfind\fP shall request affirmation +of the invocation of \fIutility_name\fP using the +current file as an argument by writing to standard error as described +in the STDERR section. If the response on standard input is +affirmative, the utility shall be invoked. Otherwise, the command +shall not be invoked and the value of the \fB-ok\fP operand +shall be false. +.TP 7 +\fB-print\fP +The primary shall always evaluate as true; it shall cause the current +pathname to be written to standard output. +.TP 7 +\fB-newer\ \fP \fIfile\fP +The primary shall evaluate as true if the modification time of the +current file is more recent than the modification time of +the file named by the pathname \fIfile\fP. +.TP 7 +\fB-depth\fP +The primary shall always evaluate as true; it shall cause descent +of the directory hierarchy to be done so that all entries in +a directory are acted on before the directory itself. If a \fB-depth\fP +primary is not specified, all entries in a directory shall +be acted on after the directory itself. If any \fB-depth\fP primary +is specified, it shall apply to the entire expression even if +the \fB-depth\fP primary would not normally be evaluated. +.sp +.LP +The primaries can be combined using the following operators (in order +of decreasing precedence): +.TP 7 +(\ \fIexpression\fP\ ) +True if \fIexpression\fP is true. +.TP 7 +\fB!\ \fP \fIexpression\fP +Negation of a primary; the unary NOT operator. +.TP 7 +\fIexpression\ \fP \fB[-a]\ \fP \fIexpression\fP +.sp +Conjunction of primaries; the AND operator is implied by the juxtaposition +of two primaries or made explicit by the optional +\fB-a\fP operator. The second expression shall not be evaluated if +the first expression is false. +.TP 7 +\fIexpression\ \fP \fB-o\ \fP \fIexpression\fP +.sp +Alternation of primaries; the OR operator. The second expression shall +not be evaluated if the first expression is true. +.sp +.LP +If no \fIexpression\fP is present, \fB-print\fP shall be used as the +expression. Otherwise, if the given expression does not +contain any of the primaries \fB-exec\fP, \fB-ok\fP, or \fB-print\fP, +the given expression shall be effectively replaced by: +.sp +.RS +.nf + +\fB(\fP \fIgiven_expression\fP \fB) -print +\fP +.fi +.RE +.LP +The \fB-user\fP, \fB-group\fP, and \fB-newer\fP primaries each shall +evaluate their respective arguments only once. +.SH STDIN +.LP +If the \fB-ok\fP primary is used, the response shall be read from +the standard input. An entire line shall be read as the +response. Otherwise, the standard input shall not be used. +.SH INPUT FILES +.LP +None. +.SH ENVIRONMENT VARIABLES +.LP +The following environment variables shall affect the execution of +\fIfind\fP: +.TP 7 +\fILANG\fP +Provide a default value for the internationalization variables that +are unset or null. (See the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables +for +the precedence of internationalization variables used to determine +the values of locale categories.) +.TP 7 +\fILC_ALL\fP +If set to a non-empty string value, override the values of all the +other internationalization variables. +.TP 7 +\fILC_COLLATE\fP +.sp +Determine the locale for the behavior of ranges, equivalence classes, +and multi-character collating elements used in the pattern +matching notation for the \fB-n\fP option and in the extended regular +expression defined for the \fByesexpr\fP locale keyword in +the \fILC_MESSAGES\fP category. +.TP 7 +\fILC_CTYPE\fP +This variable determines the locale for the interpretation of sequences +of bytes of text data as characters (for example, +single-byte as opposed to multi-byte characters in arguments), the +behavior of character classes within the pattern matching +notation used for the \fB-n\fP option, and the behavior of character +classes within regular expressions used in the extended +regular expression defined for the \fByesexpr\fP locale keyword in +the \fILC_MESSAGES\fP category. +.TP 7 +\fILC_MESSAGES\fP +Determine the locale for the processing of affirmative responses that +should be used to affect the format and contents of +diagnostic messages written to standard error. +.TP 7 +\fINLSPATH\fP +Determine the location of message catalogs for the processing of \fILC_MESSAGES +\&.\fP +.TP 7 +\fIPATH\fP +Determine the location of the \fIutility_name\fP for the \fB-exec\fP +and \fB-ok\fP primaries, as described in the Base +Definitions volume of IEEE\ Std\ 1003.1-2001, Chapter 8, Environment +Variables. +.sp +.SH ASYNCHRONOUS EVENTS +.LP +Default. +.SH STDOUT +.LP +The \fB-print\fP primary shall cause the current pathnames to be written +to standard output. The format shall be: +.sp +.RS +.nf + +\fB"%s\\n", <\fP\fIpath\fP\fB> +\fP +.fi +.RE +.SH STDERR +.LP +The \fB-ok\fP primary shall write a prompt to standard error containing +at least the \fIutility_name\fP to be invoked and the +current pathname. In the POSIX locale, the last non- <blank> in the +prompt shall be \fB'?'\fP . The exact format used is +unspecified. +.LP +Otherwise, the standard error shall be used only for diagnostic messages. +.SH OUTPUT FILES +.LP +None. +.SH EXTENDED DESCRIPTION +.LP +None. +.SH EXIT STATUS +.LP +The following exit values shall be returned: +.TP 7 +\ 0 +All \fIpath\fP operands were traversed successfully. +.TP 7 +>0 +An error occurred. +.sp +.SH CONSEQUENCES OF ERRORS +.LP +Default. +.LP +\fIThe following sections are informative.\fP +.SH APPLICATION USAGE +.LP +When used in operands, pattern matching notation, semicolons, opening +parentheses, and closing parentheses are special to the +shell and must be quoted (see \fIQuoting\fP ). +.LP +The bit that is traditionally used for sticky (historically 01000) +is specified in the \fB-perm\fP primary using the octal +number argument form. Since this bit is not defined by this volume +of IEEE\ Std\ 1003.1-2001, applications must not assume +that it actually refers to the traditional sticky bit. +.SH EXAMPLES +.IP " 1." 4 +The following commands are equivalent: +.sp +.RS +.nf + +\fBfind . +find . -print +\fP +.fi +.RE +.LP +They both write out the entire directory hierarchy from the current +directory. +.LP +.IP " 2." 4 +The following command: +.sp +.RS +.nf + +\fBfind / \\( -name tmp -o -name '*.xx' \\) -atime +7 -exec rm {} \\; +\fP +.fi +.RE +.LP +removes all files named \fBtmp\fP or ending in \fB.xx\fP that have +not been accessed for seven or more 24-hour periods. +.LP +.IP " 3." 4 +The following command: +.sp +.RS +.nf + +\fBfind . -perm -o+w,+s +\fP +.fi +.RE +.LP +prints ( \fB-print\fP is assumed) the names of all files in or below +the current directory, with all of the file permission +bits S_ISUID, S_ISGID, and S_IWOTH set. +.LP +.IP " 4." 4 +The following command: +.sp +.RS +.nf + +\fBfind . -name SCCS -prune -o -print +\fP +.fi +.RE +.LP +recursively prints pathnames of all files in the current directory +and below, but skips directories named SCCS and files in +them. +.LP +.IP " 5." 4 +The following command: +.sp +.RS +.nf + +\fBfind . -print -name SCCS -prune +\fP +.fi +.RE +.LP +behaves as in the previous example, but prints the names of the SCCS +directories. +.LP +.IP " 6." 4 +The following command is roughly equivalent to the \fB-nt\fP extension +to \fItest\fP: +.sp +.RS +.nf + +\fBif [ -n "$(find file1 -prune -newer file2)" ]; then + printf %s\\\\n "file1 is newer than file2" +fi +\fP +.fi +.RE +.LP +.IP " 7." 4 +The descriptions of \fB-atime\fP, \fB-ctime\fP, and \fB-mtime\fP use +the terminology \fIn\fP "86400 second periods +(days)". For example, a file accessed at 23:59 is selected by: +.sp +.RS +.nf + +\fBfind . -atime -1 -print +\fP +.fi +.RE +.LP +at 00:01 the next day (less than 24 hours later, not more than one +day ago); the midnight boundary between days has no effect on +the 24-hour calculation. +.LP +.SH RATIONALE +.LP +The \fB-a\fP operator was retained as an optional operator for compatibility +with historical shell scripts, even though it is +redundant with expression concatenation. +.LP +The descriptions of the \fB'-'\fP modifier on the \fImode\fP and \fIonum\fP +arguments to the \fB-perm\fP primary agree +with historical practice on BSD and System V implementations. System +V and BSD documentation both describe it in terms of checking +additional bits; in fact, it uses the same bits, but checks for having +at least all of the matching bits set instead of having +exactly the matching bits set. +.LP +The exact format of the interactive prompts is unspecified. Only the +general nature of the contents of prompts are specified +because: +.IP " *" 3 +Implementations may desire more descriptive prompts than those used +on historical implementations. +.LP +.IP " *" 3 +Since the historical prompt strings do not terminate with <newline>s, +there is no portable way for another program to +interact with the prompts of this utility via pipes. +.LP +.LP +Therefore, an application using this prompting option relies on the +system to provide the most suitable dialog directly with the +user, based on the general guidelines specified. +.LP +The \fB-name\fP \fIfile\fP operand was changed to use the shell pattern +matching notation so that \fIfind\fP is consistent +with other utilities using pattern matching. +.LP +The \fB-size\fP operand refers to the size of a file, rather than +the number of blocks it may occupy in the file system. The +intent is that the \fIst_size\fP field defined in the System Interfaces +volume of IEEE\ Std\ 1003.1-2001 should be used, +not the \fIst_blocks\fP found in historical implementations. There +are at least two reasons for this: +.IP " 1." 4 +In both System V and BSD, \fIfind\fP only uses \fIst_size\fP in size +calculations for the operands specified by this volume of +IEEE\ Std\ 1003.1-2001. (BSD uses \fIst_blocks\fP only when processing +the \fB-ls\fP primary.) +.LP +.IP " 2." 4 +Users usually think of file size in terms of bytes, which is also +the unit used by the \fIls\fP utility for the output from the \fB-l\fP +option. (In both System V and BSD, \fIls\fP uses \fIst_size\fP for +the \fB-l\fP option size field and uses \fIst_blocks\fP for the \fIls\fP +\fB-s\fP calculations. This volume of IEEE\ Std\ 1003.1-2001 does +not specify \fIls\fP \fB-s\fP.) +.LP +.LP +The descriptions of \fB-atime\fP, \fB-ctime\fP, and \fB-mtime\fP were +changed from the SVID description of \fIn\fP "days'' +to "24-hour periods". The description is also different in terms of +the exact timeframe for the \fIn\fP case (\fIversus\fP the +\fI+n\fP or \fI-n\fP), but it matches all known historical implementations. +It refers to one 86400 second period in the past, not +any time from the beginning of that period to the current time. For +example, \fB-atime\fP 3 is true if the file was accessed any +time in the period from 72 hours to 48 hours ago. +.LP +Historical implementations do not modify \fB"{}"\fP when it appears +as a substring of an \fB-exec\fP or \fB-ok\fP +\fIutility_name\fP or argument string. There have been numerous user +requests for this extension, so this volume of +IEEE\ Std\ 1003.1-2001 allows the desired behavior. At least one recent +implementation does support this feature, but +encountered several problems in managing memory allocation and dealing +with multiple occurrences of \fB"{}"\fP in a string while +it was being developed, so it is not yet required behavior. +.LP +Assuming the presence of \fB-print\fP was added to correct a historical +pitfall that plagues novice users, it is entirely +upwards-compatible from the historical System V \fIfind\fP utility. +In its simplest form ( \fIfind\fP \fIdirectory\fP), it could +be confused with the historical BSD fast \fIfind\fP. The BSD developers +agreed that adding \fB-print\fP as a default expression +was the correct decision and have added the fast \fIfind\fP functionality +within a new utility called \fIlocate\fP. +.LP +Historically, the \fB-L\fP option was implemented using the primary +\fB-follow\fP. The \fB-H\fP and \fB-L\fP options were +added for two reasons. First, they offer a finer granularity of control +and consistency with other programs that walk file +hierarchies. Second, the \fB-follow\fP primary always evaluated to +true. As they were historically really global variables that +took effect before the traversal began, some valid expressions had +unexpected results. An example is the expression \fB-print\fP +\fB-o\fP \fB-follow\fP. Because \fB-print\fP always evaluates to true, +the standard order of evaluation implies that +\fB-follow\fP would never be evaluated. This was never the case. Historical +practice for the \fB-follow\fP primary, however, is +not consistent. Some implementations always follow symbolic links +on the command line whether \fB-follow\fP is specified or not. +Others follow symbolic links on the command line only if \fB-follow\fP +is specified. Both behaviors are provided by the \fB-H\fP +and \fB-L\fP options, but scripts using the current \fB-follow\fP +primary would be broken if the \fB-follow\fP option is +specified to work either way. +.LP +Since the \fB-L\fP option resolves all symbolic links and the \fB-type\fP +\fIl\fP primary is true for symbolic links that +still exist after symbolic links have been resolved, the command: +.sp +.RS +.nf + +\fBfind -L . -type l +\fP +.fi +.RE +.LP +prints a list of symbolic links reachable from the current directory +that do not resolve to accessible files. +.LP +A feature of SVR4's \fIfind\fP utility was the \fB-exec\fP primary's +\fB+\fP terminator. This allowed filenames containing +special characters (especially <newline>s) to be grouped together +without the problems that occur if such filenames are piped +to \fIxargs\fP. Other implementations have added other ways to get +around this problem, +notably a \fB-print0\fP primary that wrote filenames with a null byte +terminator. This was considered here, but not adopted. Using +a null terminator meant that any utility that was going to process +\fIfind\fP's \fB-print0\fP output had to add a new option to +parse the null terminators it would now be reading. +.LP +The \fB"-exec ... {} +"\fP syntax adopted was a result of IEEE PASC +Interpretation 1003.2 #210. It should be noted that this +is an incompatible change to the ISO/IEC\ 9899:1999 standard. For +example, the following command prints all files with a +\fB'-'\fP after their name if they are regular files, and a \fB'+'\fP +otherwise: +.sp +.RS +.nf + +\fBfind / -type f -exec echo {} - ';' -o -exec echo {} + ';' +\fP +.fi +.RE +.LP +The change invalidates usage like this. Even though the previous standard +stated that this usage would work, in practice many +did not support it and the standard developers felt it better to now +state that this was not allowable. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIQuoting\fP , \fIPattern Matching +Notation\fP , \fISpecial Built-In Utilities\fP , \fIchmod\fP() , \fIpax\fP +, \fIsh\fP , \fItest\fP , the System Interfaces volume of IEEE\ Std\ 1003.1-2001, +\fIgetgrgid\fP(), \fIgetpwuid\fP(), \fIstat\fP() +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |