我試圖在文件系統中搜索* .csv文件。在我正在瀏覽的某些目錄中有符號鏈接,但我想忽略某些目錄,因爲它們會導致令人討厭的長時間消耗週期。在Ksh Shell中使用FIND搜索符號鏈接,但忽略某些目錄
find -L "location" -name "*.csv >> find_result.txt
我怎麼能告訴找到忽略某些目錄,而一直看着別人的符號鏈接。
我試圖在文件系統中搜索* .csv文件。在我正在瀏覽的某些目錄中有符號鏈接,但我想忽略某些目錄,因爲它們會導致令人討厭的長時間消耗週期。在Ksh Shell中使用FIND搜索符號鏈接,但忽略某些目錄
find -L "location" -name "*.csv >> find_result.txt
我怎麼能告訴找到忽略某些目錄,而一直看着別人的符號鏈接。
使用-prune
告訴find
不要陷入一個給定的目錄。例如:
find -L location -name 'dontLookHere' -prune \
-o -name 'orThereEither' -prune \
-o -name '*.csv' -print
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]
也許很好,除了它不遵循符號鏈接,但'-wholename'比'在多個版本的find -path'便攜式以下(1)支持比前者後者。 (雖然還有舊版本不支持任何一個...) –
我用find/usr/abc -L -name'./ignore_dir'-prune -o -name「* .csv」-print >> myfiles.txt但它仍然給我一個錯誤信息,說find:bad選項-L。 Can -L和Prune可以同時使用 – maheshg
對不起,@ user1035818 - 必須先放-L,因爲它是一個選項,而不是謂詞。固定在上面。 –
另外,'-name'採用一個裸文件名;如果你想修剪特定的pthanames(比如「./ignore_dir」,但繼續前進到其他所有名爲「ignore_dir」的目錄),請改用'-path'。 –