为什么使用之间的输出有差异
find . -exec ls '{}' \+
和
find . -exec ls '{}' \;
我有:
$ find . -exec ls \{\} \+ ./file1 ./file2 .: file1 file2 testdir1 ./testdir1: testdir2 ./testdir1/testdir2: $ find . -exec ls \{\} \; file1 file2 testdir1 testdir2 ./file2 ./file1
最好用一个例子来说明这一点。假设find打开了这些文件:
find
file1 file2 file3
-exec与分号 ( ) 一起使用find . -exec ls '{}' \;,将执行
-exec
ls file1 ls file2 ls file3
但是,如果您使用加号 ( find . -exec ls '{}' \+),则尽可能多的文件名作为参数传递给单个命令:
ls file1 file2 file3
文件名的数量仅受系统最大命令行长度的限制。如果命令超过这个长度,该命令将被多次调用。