find
当使用如下简单命令时:
find /volume6/Misc \( -name *.rar -o -name *.zip -o -name *.7z \)
如果我从根目录(在哪里volume6
)执行此命令,该命令将返回所有预期结果,但如果我从内部执行相同的命令,/volume6/Misc/
它突然只返回 5-6 个结果,而不是从根目录执行时得到的 100 多个结果。
如果我明确地将路径从根目录开始,并以 开头/
,那么为什么find
从目录 A 而不是目录 B 执行命令时返回的结果会更少?无论哪种方式,它都会搜索相同的位置。
答案1
我忽略了这样一个事实:使用通配符时,*
除非将其括在引号中,否则将首先对其进行评估。将我的命令更改为:
find /volume6/Misc \( -name "*.rar" -o -name "*.zip" -o -name "*.7z" \)
无论起始位置如何,都会返回正确数量的结果。