Linux
在所有目錄中查找 zip 文件,但排除某些文件夾
我也想查看
/home
伺服器上目錄中的所有 zip 文件以及所有使用者文件夾,但我想排除客戶端目錄中可能存在或不存在的'.composer/
’ 和文件夾'vendor/'
我開始:
find . -iname \*.zip -prune -o -path "./composer*/*"
但沒有像我預期的那樣工作
返回前:
./pescador/.composer/cache/files/mpdf/mpdf/30bed8bf2e5584fafe3dd19a2fb7d17e522e7402.zip ./pescador/.composer/cache/files/mpdf/mpdf/04966b62554c455cb7639829734133fbc0ad3228.zip
但我不能排除所有點目錄,因為我也想搜尋 .trash
find . -path './composer*' -prune -o -iname '*.zip' -print
雖然這不會列出
./composer-foo.ZIP
例如。為此,您可以這樣說:
find . '(' ! -path './composer*' -o -prune ')' -iname '*.zip'
-prune
告訴find
不要進入目錄,因此您希望將其應用於要編寫腳本的目錄。以及-prune
操作謂詞),則會為匹配整個表達式的文件添加隱式操作)。但是在這裡,您似乎想跳過被呼叫的目錄,而
.composer
不是目前工作目錄的名稱以 開頭的直接子目錄composer
,所以這只是:find . -name .composer -prune -o -iname '*.zip' -print
或者也跳過名為
vendor
:find . '(' -name .composer -o -name vendor ')' -prune \ -o -iname '*.zip' -print