Find
Linux查找刪除文件夾中的文件
目標是找到具有給定名稱的目錄並刪除其中的所有文件,保留實際目錄
find /home/www/sites/ -iname '_cache' -exec du -hs {} \;
這給了我一個文件列表及其大小
204K /home/www/sites/test.site.com/html/development/Temporary/_cache 904K /home/www/sites/test.site2.com/html/development/Temporary/_cache
是否可以使用 Linux find 命令來實現?
我嘗試了一些東西,它似乎正在工作,這是 Alex 在此處發布的類似解決方案。
find . -iname '_cache' | xargs -I {} find {} -type f -maxdepth 1 -exec rm {} \;
它應該只刪除在 _cache 目錄中找到的文件,並且只在這個目錄中。它不會從 _cache 目錄的子目錄中刪除任何文件。
當然在使用之前嘗試一下,而不是rm,放上ls或無害的東西。
我還沒有徹底測試過這個邏輯……但你可以在一個循環中做一些事情,比如:
for findname in $(find /path/to/search -name '_pattern') do find $findname -type f done
因此,您將獲得與您的搜尋模式匹配的文件列表,然後通過新搜尋遍歷每個文件以查找要刪除的文件。
編寫方式將為您提供文件列表,因此您可以將其重定向到文件,然後使用 rm 循環遍歷該文件。您還可以在 for 循環中將 exec 附加到 find 中。我當然建議先按書面方式執行以測試邏輯並確保匹配看起來不錯。