终端:在find函数中引用的参数和非引用之间的区别

时间:2013-10-24 12:50:08

标签: shell ubuntu terminal find quotes

ubuntu终端命令行中这两个命令有什么区别?

find . -name "*.txt"

find . -name *.txt

1 个答案:

答案 0 :(得分:1)

这取决于您使用的shell和目录的内容。

如果由于某种原因您不幸使用csh(或其某些遗产,如zsh),当您的目录中没有与该模式匹配的文件时,它将拒绝执行此操作(除非您已转为那种行为。)

如果存在与模式匹配的文件,则命令将由shell扩展:

find . -name foo.txt bar.txt baz.txt

find将报告语法错误。除非有一个匹配的文件,否则你得到:

find . -name foo.txt

然后只能在子目录中找到名为“foo.txt”的文件。

只有当你使用理智的shell 时,当前目录中没有匹配的文件,这两个命令才是相同的。

道德:不要这样做。始终使用引号。