find dir -exec cmd \;
上面find exec 选项的用法格式
但是通常,后面的cmd命令需要处理find查询到的文件,所以需要把文件名传给cmd。这时,可以使用占位符{}来表示find到的文件名。
那么格式变为了:
find dir -exec cmd {} \;
上面的形式,shell会每find到一个文件就去执行一次cmd命令。如果想让find到全部文件一次性执行cmd命令,那么可以使用"+"号代替“;
find dir -exec cmd {} +
实例:
$ find . -maxdepth 1 -type f -name "*.txt" -exec echo "hello" \;
hello
hello
hello
$ find . -maxdepth 1 -type f -name "*.txt" -exec echo {} \\;
./a.txt
./b.txt
./c.txt
$ find . -maxdepth 1 -type f -name "*.txt" -exec echo {} +
./a.txt ./b.txt ./c.txt
这便是上面三种形式的例子。