Bash

如何使用 Bash 刪除所有隱藏的文件和目錄?

  • October 28, 2018

顯而易見的解決方案會產生退出程式碼 1:

bash$ rm -rf .*
rm: cannot remove directory `.'
rm: cannot remove directory `..'
bash$ echo $?
1

一種可能的解決方案將跳過“。” 和“..”目錄,但只會刪除名稱長度超過 3 個字元的文件:

bash$ rm -f .??*
rm -rf .[^.] .??*

應該抓住所有的情況。.??* 將僅匹配 3+ 個字元的文件名(如上一個答案中所述), .

$$ ^. $$將擷取任何兩個字元條目(除了..)。

find -path './.*' -delete

這匹配目前目錄中以 a 開頭的所有文件.並遞歸刪除這些文件。非隱藏目錄中的隱藏文件不會被觸及。

如果您真的想擦除目錄中的所有內容find -delete就足夠了。

引用自:https://serverfault.com/questions/47933