我正在使用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”。 它没有给出任何结果。
我在印度和马哈拉施特拉邦都有很多目录,可能在马哈拉施特拉邦内,也在其中。我必须找到在所有目录中创建的每个文件。 我已经安装了来自不同机器的所有文件夹。(我的意思是来自不同机器的一些状态。)
如果有人知道如何解决这个问题,请尽快回复我。
谢谢。
答案 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文件名生成的影响。
问候