On 2018-02-03 Андрей Веселов <mad1...@mail.ru> wrote: > # cd test > # ls -1 > file1 > file2 > file3 > # find . -type f -exec echo -n '{}' + > ./file1 ./file3 ./file2 > # find . -type f -exec echo -n '{}' \; > ./file1./file3./file2 > # find . -type f -execdir echo -n '{}' + > ./file1./file3./file2 > # find . -type f -execdir echo -n '{}' \; > ./file1./file3./file2
> It's seems that with -execdir '+' is the same as ';' and a command run once > for each file. strace output gives the same conclusion. > # find --version > find (GNU findutils) 4.4.2 [...] This was fixed about 7 years ago: * Major changes in release 4.5.10, 2011-05-11 [...] #29949: find -execdir does not change working directory [...] ** Performance changes The find program will once again build argument lists longer than 1 with "-execdir ...+". The upper limit of 1 argument for execdir was introduced as a workaround in findutils-4.3.4. The limit is now removed, but find still does not issue the maximum possible number of arguments, since an exec will occur each time find encounters a subdirectory (if at least one argument is pending). cu Andreas -- `What a good friend you are to him, Dr. Maturin. His other friends are so grateful to you.' `I sew his ears on from time to time, sure'