unix find命令以'+';性格
在阅读一些AWS文档时,我注意到以下命令:unix find命令以'+';性格,unix,command-line,find,Unix,Command Line,Find,在阅读一些AWS文档时,我注意到以下命令: find /var/www -type d -exec sudo chmod 2775 {} + 我对这本书很熟悉;在查找字符串中结束为exec,但从未见过“+”。有人能解释一下吗 这是原始页面: 谢谢 如果使用加号(+)而不是转义分号,则参数将在传递给命令之前分组在一起。例如: $ find . -type f -exec echo {} + . ./bar.txt ./foo.txt 在这种情况下,只创建了一个子进程(echo../bar.t
find /var/www -type d -exec sudo chmod 2775 {} +
我对这本书很熟悉;在查找字符串中结束为exec,但从未见过“+”。有人能解释一下吗
这是原始页面:
谢谢 如果使用加号(+
)而不是转义分号,则参数将在传递给命令之前分组在一起。例如:
$ 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
使用转义分号,将为每个参数创建一个子进程
$ find . -type f -exec echo {} \;
.
./bar.txt
./foo.txt
您可以将其视为一次性将
find
的所有结果作为chmod
的参数。所以它比使用更快代码>有关更多信息,请参见man find
,非常好!谢谢-这也解释了为什么返回大量参数的find命令有时不能与“+”一起使用-例如find-名称“*”-exec chmod 700{}+
(chmod抱怨命令行太长)