2012-12-30 181 views
3

我有一個目錄,其中包含一個名爲.git的單個文件夾以及各種其他文件和文件夾。我想刪除所有文件和所有文件夾,但我的.git目錄除外。Shell - 刪除除單個文件夾以外的所有內容

請注意,如果任何文件夾包含名爲.git的子文件夾,我想也將其刪除。只有root git repo應該保留!

回答

5

這是簡單的:

shopt -s extglob dotglob 
rm -rf !(.git) 

http://mywiki.wooledge.org/glob

+0

謝謝!我正在嘗試[一個類似的腳本](http://stackoverflow.com/questions/453581/how-can-i-delete-all-files-in-my-folder-except-music-subfolder#comment16380887_647981)這不是'不工作。我認爲這是在名稱干擾模式匹配的時期,當它真的是一個缺失的換行符。 – IQAndreas

+0

我認爲你需要'shopt -s dotglob'。否則,你可能只需使用'rm -rf *'。 – PleaseStand

相關問題