2012-05-02 77 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)支持比前者後者。 (雖然還有舊版本不支持任何一個...) –