什么是
{} \;
字符串在 bash 中是什么意思?
我已经见过几次了,例如,要按名称查找并删除所有文件,必须执行
find . -name "FILE-TO-FIND" -exec rm -rf {} \;
这个字符串起什么作用?
答案1
和在 中都有特殊含义,{}
但是在 的上下文中,实际上是解释了这两个(实际上我们想解释这两个)。;
bash
find
find
find
首先,-exec
是的动作find
。{}
和是谓词的;
特殊参数。-exec
find
该操作的语法-exec
是:
-exec command ;
或者
-exec command {} +
所以我们需要事先阻止{}
它;
被shell解释。
在以下上下文中find .... -exec
:
{}
表示(包含)表达式的结果,在本例中find
为find . -name "FILE-TO-FIND"
。请注意,空花括号{}
对 shell 没有特殊含义,因此我们可以不进行转义{}
由于它
bash
是;
命令的结束,因此我们需要用\
ie对其进行转义\;
,以便它能够被-exec
iebash
自身解析。