提问人:MainID 提问时间:3/14/2009 最后编辑:ephemientMainID 更新时间:3/18/2009 访问量:247
关于命令“find”的问题
A question about command "find"
答:
5赞
John Feminella
3/14/2009
#1
为什么 _* 应该被引用?
如果不是,您的 shell 可能会展开 要替换为当前目录中的文件。这可能不是你想要的。*
评论
0赞
ashawley
3/15/2009
没错,因为 find 命令将展开 * glob 运算符。
0赞
Javier
3/15/2009
问题在于 shell 在 find 命令获取它之前将其展开
9赞
S.Lott
3/14/2009
#2
首先,shell 会展开所有不带引号的 * 以匹配本地目录中的文件名。
之后,shell 将运行带有该文件名列表的命令。find
通常,您不希望 shell 在本地目录中执行“*”通配。通常,您使用 find 命令在其他目录中执行文件名匹配。
在运行命令之前,shell 还会执行其他几项操作。$VARIABLE替代品就是其中之一。
2赞
Javier
3/14/2009
#3
如果你不引用它,shell (bash?) 会尝试扩展。如果当前目录上有任何以“”开头的文件,则会得到如下内容:_
find . \(-name _somefile _someother _file3 .... -or -newer while2 \) -type f -print
当然不是你想要的。我总是引用模式,只是为了确保 shell 不会弄乱它们
评论
0赞
MainID
3/15/2009
当我使用查找 .-name c*,它找到的匹配项比找到的少。-名称“c*”。为什么?
0赞
Javier
3/15/2009
可能您有一个以 C 开头的单个文件,并且 find 命令会获取所有具有完全相同名称的文件,而不是以 C 开头的其他名称
下一个:如何获取存储在主机中的文件?
评论