在查找命令操作时是否必须用括号括起来?

在查找命令操作时是否必须用括号括起来?

William Shotts 所著的《Linux 命令行》一书中的示例在 find 命令上对用户定义操作的语法为: -exec command'{}' ';'以防止在 shell 中扩展,但几乎在所有地方我都看到语法为-exec command {} \;。有人能解释一下区别吗?

答案1

这个答案有点误导。请查看 Kamil Maciorowski 的评论。

最简单的查找方法是使用echo命令。您可以检查 shell 扩展后收到的命令/程序。

$  echo {}
outputs: {}

$  echo '{}'
outputs: {}

$ echo \{\}
outputs  {}

所以它们之间没有真正的区别。任何一种方式都可以使用。

事实上,人们可以在一个命令中混合并匹配所有这些命令。这些find命令“看到”的是同一件事。

-exec echo {} '{}' \{\} \;

但事实并非如此;

$   echo ;
outputs: # nothing

$   echo ';'
outputs: ;

$   echo \;
outputs: ; 

相关内容