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: ;