The Wanderer wrote:
> Yes, that makes sense in this case. I'm not in the habit of doing it in
> most cases, however, because I commonly-enough need to use find with
> commands of the form 'command option {} option +' rather than the form
> 'command option {} +'.
Yep. That would push you into using the ; form instead of the + form.
> Since find can't tell what significance the additional option(s) after
> the argument list would have (i.e. whether to repeat them after each
> item in the argument list, or just append them once at the end), it
> naturally rejects that syntax as ambiguous.
A lot of commands have been modified specifically to work with find
and other ways of generating files in this way. For example the mv
and cp commands have the -t, --target-directory=DIRECTORY option.
That way one can specify things like this.
find $path -selectionoptions -execdir cp --target-dir=/SOME/PATH {} +
And then all of the options are up front and all of the files are at
the rear.
> (The man page indicates that the -exec and -execdir options build their
> command lines in much the same way as xargs does, and it's possible to
> build the more complicated command lines I need using 'xargs -I', but if
> there's a similar syntax or functionality for find I haven't found it.)
There are some clever hacks to do it in find but I think the xargs way
is better and cleaner so I won't recommend the find workarounds.
> That's not to say you aren't right in suggesting that that syntax is the
> better approach in this case, just to explain why I didn't think to
> suggest it myself, and to point out its limitations for other people who
> may read this.
It was definitely lower down on the list. And after doing some
testing with -execdir with various cases I am not convinced that the +
form actually does anything different from the ; form. It appears to
be a current deficiency. Possibly a current bug. So this is
definitely small and probably doesn't matter. At least not now. But
possibly also a future capability that would be nice to take advantage
of at some point.
Bob
Attachment:
signature.asc
Description: Digital signature