关于命令“查找”的问题

时间:2009-03-14 15:31:43

标签: linux shell command-line

find . \( -name "_*" -or -newer while2 \) -type f -print

在上面的linux命令中,为什么要引用_ *?

3 个答案:

答案 0 :(得分:9)

首先,shell扩展所有未引用的*以匹配本地目录中的文件名。

之后,shell运行带有该文件名列表的find命令。

通常,您不希望shell在本地目录中执行'*'globbing。通常,您将find命令用于在其他目录中进行文件名匹配。

在运行命令之前,shell还有其他一些功能。 $ VARIABLE替换就是其中之一。

答案 1 :(得分:5)

  

为什么要引用_ *?

如果不是,您的shell可能会扩展*以替换当前目录中的文件。那可能不是你想要的。

答案 2 :(得分:2)

如果你不引用它,shell(bash?)会尝试扩展。如果在当前目录中有任何以“_”开头的文件,您将得到类似的内容:

find . \(-name _somefile _someother _file3 .... -or -newer while2 \) -type f -print
肯定不是你想要的。我总是引用模式,只是为了确保shell不会弄乱它们