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
本身。