我在这里读到,您可以通过管道传输到command
in 末尾来计数in 的调用次数。-exec command {} +
| wc -l
尽管我理解这-execdir
是不同的,但是对于find
发现的每个匹配子目录,它都会command
从其包含的子目录中运行一个调用,如果我在一个子目录中有多个匹配的文件,则不应我最终得出的调用数量等于匹配的子目录的数量,而不是与这些子目录中的匹配文件的数量匹配的调用数量?
当我运行以下命令时,我将以后者结尾:
$ find . -name "bob*" -execdir echo {} + | wc -l
手册页execdir command {} +
指出应该是前者:
与该
-exec
操作一样,的+
形式-execdir
将构建一个命令行来处理多个匹配文件,但是任何给定的调用command
都只会列出存在于同一子目录中的文件。
即
我越来越:
./file1inDir1
./file2inDir1
./file3InDir2
./file4InDir3
当我期望这一点时,基于手册页:
./file1inDir1 ./file2inDir1
./file3InDir2
./file4InDir3
echo
且参数由生成,{} +
并且文件名中没有换行符(大多数人没有),那么行数就是调用的数目,它可以工作。如果说命令,head -n 999000 /dev/urandom
那将是非常错误的。