English 中文(简体)
不能理解的语法命令找到
原标题:
  • 时间:2009-03-22 00:35:42
  •  标签:

find命令似乎不同于其他Unix命令。

<强>为什么空花括号和落后flash在以下命令? < /强>

find * -perm 777 -exec chmod 770 {} ;

我发现花括号的原因之一,但不是向后闪。

花括号是显然的路径

Same as -exec, except that ``{} is replaced with as many pathnames as possible for each invocation of utility

最佳回答

我建议您这样做

find . -perm 777 -print0 | xargs -0 chmod 770

说:“xargs的结果发现,喂它一次20以下命令。

问题回答

- exec命令可能是紧随其后的是任意数量的参数,每个文件的命令,执行发现。需要一些方法来确定最后一个参数。这是什么;所做的事。注意,其他事情可以参照-开关后:

find euler/ -iname "*.c*" -exec echo {} ; -or -iname "*.py" -exec echo {} ;

(这在欧拉发现所有c文件和python文件目录)。

原因,执行不需要完整的命令在引号,这需要转义引号内的命令,在大多数情况下。

代码字符串<代码>{}< / > <代码>找到> < /代码替换为当前文件的路径名。

分号用于终止shell命令调用<代码>找到< /代码>实用工具。

它需要逃离,或引用,所以它不会被壳,因为<代码>,< /代码>是一个特殊字符使用的shell(运营商列表)。

参见:< a href = " https://stackoverflow.com/questions/20913198/why-are-the-backslash-and-semicolon-required-with-the-find-commands-exec-optio " >为什么所需的反斜杠和分号find命令s -选择吗? < / >

(逃)分号是必要的,以便“找到”可以告诉exec d程序结束的参数(如果有)和额外的参数“找到”开始。





相关问题
热门标签