Find
如何刪除除 .svn 目錄之外的所有內容?
我有相當複雜的目錄樹。有許多子目錄,在這些子目錄中,其他文件和目錄旁邊是“.svn”目錄。
現在,在 linux 下,我想刪除除.svn 目錄之外的所有文件和目錄。
我找到了許多關於相反行為的解決方案 - 刪除樹中的所有 .svn 目錄。有人可以引用我刪除除.svn以外的所有內容的正確答案嗎?
我通常使用一個相對簡單
find
的-exec
選項,因為我總是忘記 -delete 命令。我也僅限於文件。主要是因為我使用find {someswitches} -exec {somecommand}
了很多變體——所以我記得它!
find . -type f -not path '*.svn*' -exec rm {} \;
試試這個
rm -rf -- $(ls -la |grep -v .svn)
。它將刪除除.svn
目錄之外的所有內容(包括隱藏文件)。編輯:上述解決方案適用於一個目錄,而不是一棵樹,
find . ! -name .svn -exec rm {} \;
將刪除所有文件而不是目錄。這是一種安全的方法,因為如果您強制rm
打開目錄,您可以刪除其中包含目錄的.svn
目錄。