簡體   English   中英

linux find命令:從結果中排除路徑

[英]linux find command: exclude path from result

我使用find命令在一個文件夾中查找所有python文件,並排除一些文件夾。

find . -type d \\( -path ./venv -o -path ./virtualenv -o -path ./lib \\) -prune -o -iname '*.py'

它給出以下輸出:

...
./tests/test_a.py
./venv

如何調整find命令在結果集中排除./venv?

如果不指定任何操作,則find將對與表達式匹配的任何文件隱式使用-print -prune總是評估為true(除了防止進一步遞歸),這就是為什么./venv仍然最終被打印的原因。

為避免這種情況,只需在其他分支上添加-print即可:

find . -type d \( -path ./venv -o -path ./virtualenv -o -path ./lib \) -prune \
       -o -iname '*.py' -print

現在有一個動作,因此find不再打印會被評估為true的所有內容,而是僅打印您明確查找的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM