Find如何根據
如何根據find
輸出刪除目錄?
我發出以下命令來查找 .svn 目錄:
find . -name ".svn"
這給了我以下結果:
./toto/.svn ./toto/titi/.svn ./toto/tata/.svn
我如何處理所有這些行
rm -fr
以刪除目錄及其內容?
-exec
Find 可以使用它找到的每個匹配項的選項執行參數。這是一種推薦的機制,因為您可以正確處理包含空格/換行符和其他字元的路徑。您必須先刪除目錄的內容,然後才能刪除目錄本身,因此請使用-r
命令rm
來實現此目的。對於您的範例,您可以發出:
find . -name ".svn" -exec rm -r "{}" \;
您還可以通過添加檢查告訴 find 只查找名為 .svn 的目錄:
-type d
find . -name ".svn" -type d -exec rm -r "{}" \;
警告謹慎使用
rm -r
它會刪除文件夾及其所有內容。如果您只想刪除空目錄以及僅包含空目錄的目錄, find 可以使用
-delete
and自己完成-empty
:find . -name ".svn" -type d -empty -delete