在上面的Linux命令中,为什么“_*”应该被引用?
这个命令是查找以“_”开头的文件或比“while2”更新的文件,并将它们打印出来。在这里,使用引号是为了防止shell解释通配符“_*”。
在上面的Linux命令中,为什么“_*”应该被引用?
这个命令是查找以“_”开头的文件或比“while2”更新的文件,并将它们打印出来。在这里,使用引号是为了防止shell解释通配符“_*”。
首先,shell会将所有未加引号的 * 扩展为本地目录中的文件名。
然后,shell使用该文件名列表运行 find
命令。
通常情况下,您不希望shell在本地目录中执行 '*' globbing。通常情况下,您需要让 find 命令在其他目录中进行文件名匹配。
在运行命令之前,shell还有其他几件事情要做。$VARIABLE 替换就是其中之一。
为什么应该使用 _* 进行引用?
如果不进行引用,你的shell可能会将 *
展开为当前目录中的文件。这可能不是你想要的结果。
如果您不引用它,shell(bash?)将尝试扩展。如果当前目录中有任何以“_
”开头的文件,您将得到以下类似内容:
find . \(-name _somefile _someother _file3 .... -or -newer while2 \) -type f -print
肯定不是你想要的。我总是引用模式,以确保 shell 不会对其进行处理。