Email List: Xaustin-group-lX
[All Lists]

Re: find + xargs

To: yyyyyyyyyyyyyy@xxxxxxxxxxxxx
Subject: Re: find + xargs
From: Geoff Clare <yyy@xxxxxxxxxxx>
Date: Mon, 26 Mar 2001 15:50:17 +0100 (BST)
I wrote, on Sun 25 Mar 2001:
>
> Here is the description from a Unixware 2.1 man page:
> 
[snip]
> 
> It shouldn't be too hard to update the XCUd5 description of "find"
> based on this.

It turned out to be a little harder than I expected - the text I have
come up with is below.   In view of Andrew's warning about the time
constraints for getting POSIX interps into the revision, I have
submitted a POSIX.2 interp request with this as the suggested solution.

I think this means that this now becomes a matter for the POSIX.2
interps group, and further discussion of it here will probably be
discouraged.

Replace the description of the "-exec" primary with:

    -exec utility_name [argument  . . .] ;
    -exec utility_name [argument  . . .] {} +

          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 "{}" shall
          punctuate the end of the primary expression.  Other uses of
          the plus sign shall not be treated as special.

          If the primary expression is punctuated by a semicolon, the
          utility utility_name shall be invoked once for each path name
          and the primary shall evaluate as true if the utility returns
          a zero value as exit status.  A utility_name or argument
          containing only the two characters "{}" shall be replaced by
          the current path name.

          If the primary expression is punctuated by a plus sign, the
          primary shall always evaluate as true, and the path names for
          which the primary is evaluated shall be aggregated into sets.
          The utility utility_name shall be invoked once for each set
          of aggregated path names.  An argument containing only the
          two characters "{}" shall be replaced by the set of path
          names, with each path name passed as a separate argument to
          the invoked utility.  The size of each set of path names
          shall be limited such that execution of the utility does not
          cause the system's {ARG_MAX} limit to be exceeded.

          If a utility_name or argument string contains the two
          characters "{}", but not just the two characters "{}", it
          is implementation-defined whether find replaces those two
          characters or uses the string without change. The current
          directory for the invocation of utility_name shall be the
          same as the current directory when the find utility was
          started. If the utility_name names any of the special
          built-in utilities in 3.14, the results are undefined.

Also, in the description of the "-ok" primary, change "except that find
shall request" to "except that the use of a plus sign to punctuate the end
of the primary expression need not be supported, and find shall request"


-- 
Geoff Clare                         yyy@xxxxxxxxxxx
UniSoft Limited, London, England.   yyy@xxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>