linux 刪除指定資料夾外的其他所有資料夾

2021-07-06 03:05:51 字數 1109 閱讀 3346

(1)刪除 除指定目錄下得其他所有資料夾

ls |grep -v dir | xargs rm -rf 

1、方法1,比較麻煩的做法是:

複製需要保留的檔案到其他資料夾,然後將該目錄刪除, 然後將需要保留的移動 回來。

mv keep ../ #保留檔案(夾) keep

rm -rf * #刪除當前資料夾裡的所有檔案

mv ../keep ./ #將原來的東西移動回來

2、方法2,需要在當前資料夾中進行:

rm -rf !(keep) #刪除keep檔案之外的所有檔案

rm -rf !(keep1 | keep2) #刪除keep1和keep2檔案之外的所有檔案

3、方法3,當前資料夾中結合使用grep和xargs來處理檔名:

ls | grep -v keep | xargs rm #刪除keep檔案之外的所有檔案

說明: ls先得到當前的所有檔案和資料夾的名字, grep -v keep,進行grep正則匹配查詢keep,-v引數決定了結果為匹配之外的結果,也就是的到了keep之外的所有檔名,然後 xargs用於從 標準輸入獲得引數 並且傳遞給後面的命令,這裡使用的命令是 rm,然後由rm刪除前面選擇的檔案。

好處:使用了grep來正規表示式來匹配檔案名字,可以一次保留多個檔案,從而進行更加準確的處理。

4、方法4,使用find命令代替ls,改進方法3從而能夠處理制定資料夾的檔案:

find ./test/ | grep -v keep | xargs rm #刪除當前test資料夾中keep檔案之外的所有檔案

說明,用grep而不用find -name選取名字,因為find選取名字時比較麻煩,對正規表示式支援不夠,無法排除指定檔名。

5、方法5,直接使用find命令刪除其他檔案:

find ./ -name '[^k][^e][^e][^p]*'  -exec rm -rf {} \; #刪除keep以外的其他檔案。

find ./ -name '[^k][^e][^e][^p]*'  | xargs rm -rf  #刪除keep以外的其他檔案。推薦!

說明:上面第二行的**效率高些,原因在於刪除多個檔案時 -exec會啟動多個程序來處理,而xargs會啟動乙個rm程序來處理。

CMD刪除指定資料夾

2018年10月16日 14 07 34 草巾冒小子 閱讀數 7114更多 分類專欄 cmd 有的專案檔案查詢比較繁瑣,而且有時候執行刪除之後檔案仍有殘留。想來有此更便捷的刪除之法。執行後會永久刪除檔案。如上圖所示 鍵盤執行輸入rd s q,然後空格,然後是檔案物理路徑 以上就是關於 cmd刪除指定...

CMD刪除指定資料夾

2018年10月16日 14 07 34 草巾冒小子 閱讀數 7114更多 分類專欄 cmd 有的專案檔案查詢比較繁瑣,而且有時候執行刪除之後檔案仍有殘留。想來有此更便捷的刪除之法。執行後會永久刪除檔案。如上圖所示 鍵盤執行輸入rd s q,然後空格,然後是檔案物理路徑 以上就是關於 cmd刪除指定...

php 刪除指定資料夾

1 前言 目標 php刪除乙個指定目錄 所使用的的php函式 is dir,opendir,readdir,scandir,rmdir,closedir,等等 注 其他檔案操作函式也可以完成,這裡只列舉了本次使用的函式 2 相關函式介紹 rmdir 詳情參考 3 構成 delallfile desc...