On 2021-08-05 at 20:25, Greg Wooledge wrote:
>> >> find . -type d -exec chmod -v 0644 '{}' \;
>
>> > Use + instead of \; to make them more efficient.
>
>> What does + make as a difference ?
>
> It's a replacement for xargs, except that it actually works, unlike
> xargs, which is horribly broken without GNU extensions.
>
> find . -type d -exec chmod 755 {} +
>
> is equivalent to
>
> find . -type d -print0 | xargs -0 chmod 755
>
> except that the former is (a) faster, (b) shorter, and (c) POSIX standard.
I believe I've hit contexts in which I could use '-print0 | xargs -0'
but couldn't figure out a way to get the job done with '-exec', because
I needed the command which was being run to process the output to be a
pipeline. (I no longer remember the specifics of the tasks involved, so
I can't explain why this was what I needed.)
The only way I can/could think of to do that with an argument to '-exec'
involved putting the pipeline sequence into a script and calling that
via -exec, but that's more unwieldy than I want to work with in most cases.
--
The Wanderer
The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man. -- George Bernard Shaw
Attachment:
signature.asc
Description: OpenPGP digital signature