-find命令的-exec选项为什么需要反斜杠和分号?
-find命令的-exec选项为什么需要反斜杠和分号?
我开始在Linux终端中组合不同的命令。我想知道为什么像下面这样的命令需要反斜线和分号:
find ./ -name 'blabla' -exec cp {} ./test \;
而一个简单的cp命令只需要:
cp randomfile ./test
没有\\;
它们是为了清楚地指示命令的结束,还是仅在文档中需要?这是什么底层原则?
admin 更改状态以发布 2023年5月24日
在分割shell命令的列表运算符(或&&
, ||
) 中,分号前面需要加反斜杠。例如:
command1; command2
find
工具使用 -exec
来终止调用的shell命令。可以使用分号或加号来终止shell命令。
为了避免特殊的shell字符被解释,需要用反斜杠来转义,以便移除下一个字符的任何特殊含义并维持行的连续性。
因此,可以使用以下语法来执行find
命令:
find . -exec echo {} \; find . -exec echo {} ';' find . -exec echo {} ";" find . -exec echo {} \+ find . -exec echo {} +
参见: