以"+"字符结尾的 unix 查找命令



在阅读一些AWS文档时,我注意到以下命令:

find /var/www -type d -exec sudo chmod 2775 {} +

我熟悉;在查找字符串中结束执行,但从未见过'+'。有人能解释一下吗?

原文:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html

谢谢!

如果使用加号(+)而不是转义分号,则参数将在传递给命令之前分组在一起。例如:

$ find . -type f -exec echo {} +
. ./bar.txt ./foo.txt 

在这种情况下,只创建一个子进程(echo . ./bar.txt ./foo.txt),这是更高效的,因为它避免了每个参数的fork/exec。

使用转义分号,您将获得为每个参数创建的子进程。

$ find . -type f -exec echo {} ;
. 
./bar.txt
./foo.txt 

最新更新