linux find命令无法正常工作

时间:2010-12-27 10:01:50

标签: linux

我正在使用Linux(Ubuntu),我正在尝试查找文件,但它无法正常工作。 我的意思是,我在(我的目录结构)World / India / Maharashtra / Pune / filename.xml中创建了一些文件

当我使用find命令时,例如“find / home / lokesh / Desktop / Testing_India2 / Test / World / India / Maharashtra / -name filename * .xml -mmin -3000”。 它完美地给出了结果。 但是,当我在世界或印度级别使用相同的命令时,我的意思是, “find / home / lokesh / Desktop / Testing_India2 / Test / World / -name filename * .xml -mmin -3000”。 它没有给出任何结果。

我在印度和马哈拉施特拉邦都有很多目录,可能在马哈拉施特拉邦内,也在其中。我必须找到在所有目录中创建的每个文件。 我已经安装了来自不同机器的所有文件夹。(我的意思是来自不同机器的一些状态。)

如果有人知道如何解决这个问题,请尽快回复我。

谢谢。

3 个答案:

答案 0 :(得分:12)

双引号搜索字符串和-L,使其符合符号链接:

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name "filename*.xml" -mmin -30000

答案 1 :(得分:3)

这是我今天早些时候在使用'*'通配符时遇到的问题。我不能让它继续遍历子目录,除非我用*转义*。

尝试一下:

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name filename\*.xml -mmin -30000

答案 2 :(得分:3)

是的,如上所述,您必须加倍q -name参数或在*之前使用反斜杠。它不能从一个目录工作,但在其他目录中工作正常的原因是*字符用于shell生成文件名。这当然发生在find命令执行之前。因此,如果您的文件与当前目录中的filename*.xml模式匹配,则在find执行之前将替换该文件,这不是您想要的。另一方面,如果当前目录中没有模式匹配,则*字符将被传递给未修改的find命令。通过qouting,你可以保护字符串不受shell文件名生成的影响。

问候