ubuntu 终端命令行中这两个命令有什么区别?
find . -name "*.txt"
find . -name *.txt
这取决于您使用的 shell 和目录的内容。
如果你因为某种原因不幸使用 csh(或它的一些遗产,如 zsh),当你的目录中没有与模式匹配的文件时,它将拒绝执行此操作(除非你已关闭该行为)。
如果有与该模式匹配的文件,该命令将由 shell 扩展:
find . -name foo.txt bar.txt baz.txt
并且find
会报语法错误。除非有一个匹配的文件,否则你会得到:
find . -name foo.txt
然后这只会在子目录中找到名为“foo.txt”的文件。
仅当您使用的是健全的外壳并且当前目录中没有匹配的文件时,这两个命令才会相同。
道德:不要这样做。始终使用引号。