[英]Bash script to recursively step through folders and delete files
任何人都可以給我一個bash腳本或一行命令我可以在linux上運行遞歸遍歷當前文件夾中的每個文件夾並刪除所有以'._'開頭的文件或目錄?
更改目錄到你想要的根目錄(或更改.
並執行到該目錄):
find . -name "._*" -print0 | xargs -0 rm -rf
xargs
允許您將多個參數傳遞給單個命令,因此它比使用find -exec
語法更快。 此外,您可以在沒有|
情況下運行一次 要查看它將刪除的文件,請確保它是安全的。
find . -name '._*' -exec rm -Rf {} \;
您可以將它們與相應的文件合並,而不是刪除AppleDouble文件。 你可以使用dot_clean
。
dot_clean - 將._ *文件與相應的本機文件合並。
對於每個目錄,dot_clean根據給定參數指定的規則遞歸地將所有._ *文件與其對應的本機文件合並。 默認情況下,如果._文件中也存在本機文件的屬性,則將使用最新的屬性。
如果沒有給出操作數,則輸出使用消息。 如果給出了多個目錄,則按照指定的順序合並目錄。
因為dot_clean默認遞歸工作,所以使用:
dot_clean <directory>
如果要關閉遞歸合並,請使用-f
進行平面合並。
dot_clean -f <directory>
我前一段時間遇到過類似的問題(我假設您正在嘗試清理連接到Mac的驅動器,這會保存很多這些文件),所以我編寫了一個簡單的python腳本來刪除這些和其他無用的文件; 也許它對你有用:
find /path -name "._*" -exec rm -fr "{}" +;
find . -name '.*' -delete
如果文件列表非常長,則會更短,性能更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.