日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux rm 删除指定文件外的其他文件 方法汇总

發布時間:2025/3/15 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux rm 删除指定文件外的其他文件 方法汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Linux下刪除文件和文件夾常用命令如下:

刪除文件: rm file

刪除文件夾: rm -rf dir

需要注意的是, rmdir 只能夠刪除 空文件夾 。

?

二、刪除制定文件(夾)之外的所有文件呢?

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進程來處理。

轉載于:https://www.cnblogs.com/ShaneZhang/p/3361361.html

總結

以上是生活随笔為你收集整理的Linux rm 删除指定文件外的其他文件 方法汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。