1

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

find . -name "*.txt"

find . -name *.txt

4

1 回答 1

1

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

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

如果有与该模式匹配的文件,该命令将由 shell 扩展:

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

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

find . -name foo.txt

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

仅当您使用的是健全的外壳并且当前目录中没有匹配的文件时,这两个命令才会相同。

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

于 2013-10-24T12:59:05.177 回答