spi*_*ace 5 command-line bash find
有什么作用
{} \;
Run Code Online (Sandbox Code Playgroud)
字符串在bash中的意思?
例如,我已经看过几次,按名称查找和删除所有文件必须执行
find . -name "FILE-TO-FIND" -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)
这个字符串有什么作用?
hee*_*ayl 10
双方{}并;在具有特殊的含义bash,但在的情况下find,它find实际上解释这两个(实际上我们要find解释这两种)。
首先,-exec是一个动作find。{}和;是 的-exec谓词的特殊参数find。
-exec动作的语法是:
-exec command ;
Run Code Online (Sandbox Code Playgroud)
或者
-exec command {} +
Run Code Online (Sandbox Code Playgroud)
因此,我们需要保持{}并;从被壳事先解释。
在以下情况下find .... -exec:
{}表示(包含)find表达式的结果,即find . -name "FILE-TO-FIND"在这种情况下。请注意,空花括号{}对 shell 没有特殊意义,因此我们可以在不转义的情况下逃脱{}
作为bash对待;作为命令的结束,我们需要摆脱这种\即\;,以便它可以通过解析-exec不是bash本身。