Re: [PATCH] find: add option -fail_exec

Tavian Barnes <[email protected]>
Newsgroups gmane.comp.gnu.findutils.bugs
Message-ID <CABg4E-nDOMQdZTrS--GZo=TdJj+3ZgHFv_kVvNd8bO4eARCW0w@mail.gmail.com>
On Wed, May 21, 2025 at 1:51 AM Bernhard Voelker
<[email protected]> wrote:
> [snip]
> Although I like in general the idea to have more control over
> exit values in the caller, I have the suspicion that mapping to
> EXIT_FAILURE may be too simple:
>
> How to distinguish that from other find(1) errors?
> In your case 0 vs. non-Zero seems to be sufficient.
> But other / future use cases might need to directly pass back
> the exit value transparently (or even mapped) to find's exit code?
> For that, extending your approach might be problematic.

One idea would be to take the exit status from the command itself.  So if you do

    $ find -fail_exec -exec sh -c 'cat "$1" || exit 42' sh {} \;

then find would exit(42) if cat fails.

> For the user, it is already confusing to have so many flavors:
>        -exec COMMAND ;     -exec COMMAND {} +     -ok COMMAND ;
>        -execdir COMMAND ;  -execdir COMMAND {} +  -okdir COMMAND ;
> So adding another one adds complexity.

Unless I'm misreading it, the given patch doesn't add another variant
like that, it just adds an option.  So usage would look like

    $ find -fail_exec -exec false + {}

> On 5/20/25 22:56, Bernhard Voelker wrote:
>  > So would you please describe further your use cases with some
>  > examples?
>
> P.S. It makes sense looking over the fence as well:
> does one of the other find(1) implementations have such a feature
> already, and how is it solved there?

NetBSD find has -exit [status], so there you could write something like

    $ find -exec cmd {} \; -o -exit 42

See https://man.netbsd.org/find.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.