2012-05-02 47 views
0

我试图在文件系统中搜索* .csv文件。在我正在浏览的某些目录中有符号链接,但我想忽略某些目录,因为它们会导致令人讨厌的长时间消耗周期。在Ksh Shell中使用FIND搜索符号链接,但忽略某些目录

find -L "location" -name "*.csv >> find_result.txt 

我怎么能告诉找到忽略某些目录,而一直看着别人的符号链接。

回答

2

使用-prune告诉find不要陷入一个给定的目录。例如:

find -L location -name 'dontLookHere' -prune \ 
       -o -name 'orThereEither' -prune \ 
       -o -name '*.csv' -print 
+0

我用find/usr/abc -L -name'./ignore_dir'-prune -o -name“* .csv”-print >> myfiles.txt但它仍然给我一个错误信息,说find:bad选项-L。 Can -L和Prune可以同时使用 – maheshg

+0

对不起,@ user1035818 - 必须先放-L,因为它是一个选项,而不是谓词。固定在上面。 –

+0

另外,'-name'采用一个裸文件名;如果你想修剪特定的pthanames(比如“./ignore_dir”,但继续前进到其他所有名为“ignore_dir”的目录),请改用'-path'。 –

0
find dir -wholename dirtoskip -prune -o [rest of your find command] 

find dir \(-wholename dirtoskip -o -wholename another \) -prune -o [rest of your find command] 
+0

也许很好,除了它不遵循符号链接,但'-wholename'比'在多个版本的find -path'便携式以下(1)支持比前者后者。 (虽然还有旧版本不支持任何一个...) –