find命令似乎与其他Unix命令不同.
为什么在下面的命令末尾有空的花括号和后向闪烁?
find * -perm 777 -exec chmod 770 {} \;
我找到了大括号的一个原因,但没有找到后向闪光的原因.
大括号显然是为了这条道路
与-exec相同,除了为每次调用实用程序替换尽可能多的路径名``{}''
Stephan202.. 16
-exec命令后面可以跟随任意数量的参数,这些参数构成了为每个找到的文件执行的命令.需要有一些方法来确定最后一个参数.这是什么 \; 确实.请注意,在-exec开关后可能会出现其他内容:
find euler/ -iname "*.c*" -exec echo {} \; -or -iname "*.py" -exec echo {} \;
(这会在euler目录中找到所有c文件和python文件.)
exec不需要完整命令在引号内的原因是,在大多数情况下,这将需要在命令内转义大量引号.
-exec命令后面可以跟随任意数量的参数,这些参数构成了为每个找到的文件执行的命令.需要有一些方法来确定最后一个参数.这是什么 \; 确实.请注意,在-exec开关后可能会出现其他内容:
find euler/ -iname "*.c*" -exec echo {} \; -or -iname "*.py" -exec echo {} \;
(这会在euler目录中找到所有c文件和python文件.)
exec不需要完整命令在引号内的原因是,在大多数情况下,这将需要在命令内转义大量引号.
字符串{}
in find
将替换为当前文件的路径名.
分号用于终止find
实用程序调用的shell命令.
它需要被转义或引用,因此它不会被shell解释,因为它;
是shell(列表运算符)使用的特殊字符之一.
另请参阅:为什么find命令的-exec选项需要反斜杠和分号?