bug-findutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: If the expression contains *any action* anywhere (excluding -prune),


From: Eric Blake
Subject: Re: If the expression contains *any action* anywhere (excluding -prune), the user must provide all actions.
Date: Tue, 05 Apr 2011 10:35:13 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Fedora/3.1.9-0.39.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.9

On 04/04/2011 10:47 PM, Peggy Russell wrote:
> The bottom line seemed to be, I wasn't sure when an implicit `print` was going
> to occur. Ah! Now I get it. If the expression contains *any action* anywhere,
> the user must provide all actions.

Correct, for the right definition of actions.

> The exception to that rule is `-prune`. It is
> the absent of any action that creates:
> 
>   `\( entire expression \) -a -print`

-prune is not an action.  According to POSIX:

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html

only -exec, -ok, and -print are actions (all other POSIX-mandated
primaries are non-actions).

Since -prune is POSIX-mandated, I think we have a documentation bug -
-prune should be listed among the TESTS section of the man page rather
than the ACTIONS section.

Meanwhile, since -delete, -execdir, -fls, -fprint, -fprint0, -fprintf,
-ls, -okdir, -print0, -printf, and -quit are not mandated by POSIX, it
makes sense for GNU findutils to describe those as additional actions
that suppress the implicit -print behavior.

But, once we account for the documentation bug of -prune being listed in
the wrong section, your analysis of several sample commands and when the
implicit \( \) -print is added are correct.

-- 
Eric Blake   address@hidden    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]