![](/img/trans.png)
[英]How do you get the total size of all files of a certain type within a directory in linux?
[英]How do you recursively delete all hidden files in a directory on UNIX?
我一直在尋找一段時間,但似乎無法得到一個簡潔的解決方案。 我有一台帶有文件夾的 Mac,我想清除所有隱藏的文件/目錄 - 任何隱藏的內容。 它曾經是一個包含大量 .metadata/.svn 內容的 Eclipse 工作區,我對所有這些內容都被刪除感到滿意。 我該怎么做(使用 shell 腳本、Applescript 等)。 非常感謝!
find . -name ".*" -print
我不知道 MAC 操作系統,但這就是您在大多數 *nix 環境中找到它們的方式。
find . -name ".*" -exec rm -rf {} \\;
擺脫它們......在刪除它們之前先進行查找並確保該列表是您想要的。
第一個"."
表示來自您當前的目錄。 另請注意,第二個".*"
可以更改為".svn*"
或任何其他更具體的名稱; 上面的語法只是找到所有隱藏的文件,但你可以更有選擇性。 我一直使用它來刪除舊代碼中的所有 .svn 目錄。
您需要非常小心並測試您使用的任何命令,因為您可能不想刪除當前目錄 ( .
)、父目錄 ( ..
) 或所有文件。
這應該只包括以點和 exclude 開頭的文件和目錄.
和..
find . -mindepth 1 -name '.*' -delete
rm -rf `find . -type f -regex '.*/\.+.+'`
如果要刪除目錄,請將-type f
更改為-type d
。
如果要刪除文件和目錄 remove -type f
find /path -iname ".*" -type f -delete ;
紅寶石(1.9+)
ruby -rfileutils -e 'Dir["**/.*"].each{|x| FileUtils.rm(x) if File.file?(x)}'
我發現這很有效(至少在 Linux 上的 Bash 中):
find . -wholename '*/.*' -type f | sed -n '/\/\.[^\/]\+$/p' | xargs rm
您可以根據自己的喜好調整sed
調用中的正則表達式。
不過要小心:就我而言,我有很多名為.gitignore
或.gitkeep
的隱藏文件必須保留。 請務必檢查列表以查看其中是否有您想要保留的內容。
我發現這個變體非常有用,它刪除了._ANYTHING
文件(通常是垃圾文件或 tmp 文件):
find . -wholename '*/.*' -type f | sed -n '/\/\._[^\/]\+$/p' | xargs rm
我使用這個命令來刪除空目錄。 它從底部開始,一直到頂部。 因此,如果您引用當前路徑,它不會失敗。
find . -depth -type d -empty -exec rmdir {} \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.