系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux刪除文件

Linux下怎么刪除某文件外的所有文件

時(shí)間:2014-12-03 18:21:07 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141203/31845.html 手機(jī)查看 評論

  Linux下刪除文件使用rm指令就可以完成了,那么要?jiǎng)h除除了指定文件的其他文件又該使用哪個(gè)命令呢?下面小編就大家介紹下刪除指定文件以外的文件命令。

 Linux下怎么刪除某文件外的所有文件

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

  刪除文件: rm file

  刪除文件夾: rm -rf dir

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

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

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

  復(fù)制需要保留的文件到其他文件夾,然后將該目錄刪除, 然后將需要保留的移動(dòng) 回來。

  mv keep 。。/ #保留文件(夾) keep

  rm -rf * #刪除當(dāng)前文件夾里的所有文件

  mv 。。/keep 。/ #將原來的東西移動(dòng)回來

  2、方法2,需要在當(dāng)前文件夾中進(jìn)行:

  rm -rf 。╧eep) #刪除keep文件之外的所有文件

  rm -rf 。╧eep1 | keep2) #刪除keep1和keep2文件之外的所有文件

  3、方法3,當(dāng)前文件夾中結(jié)合使用grep和xargs來處理文件名:

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

  說明: ls先得到當(dāng)前的所有文件和文件夾的名字, grep -v keep,進(jìn)行g(shù)rep正則匹配查找keep,-v參數(shù)決定了結(jié)果為匹配之外的結(jié)果,也就是的到了keep之外的所有文件名,然后 xargs用于從 標(biāo)準(zhǔn)輸入獲得參數(shù) 并且傳遞給后面的命令,這里使用的命令是 rm,然后由rm刪除前面選擇的文件。

  好處:使用了grep來正則表達(dá)式來匹配文件名字,可以一次保留多個(gè)文件,從而進(jìn)行更加準(zhǔn)確的處理。

  4、方法4,使用find命令代替ls,改進(jìn)方法3從而能夠處理制定文件夾的文件:

  find 。/test/ | grep -v keep | xargs rm #刪除當(dāng)前test文件夾中keep文件之外的所有文件

  說明,用grep而不用find -name選取名字,因?yàn)閒ind選取名字時(shí)比較麻煩,對正則表達(dá)式支持不夠,無法排除指定文件名。

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

  find 。/ -name ‘[^k][^e][^e][^p]*’ -exec rm -rf {} \; #刪除keep以外的其他文件。

  find 。/ -name ‘[^k][^e][^e][^p]*’ | xargs rm -rf #刪除keep以外的其他文件。推薦!

  說明:上面第二行的代碼效率高些,原因在于刪除多個(gè)文件時(shí) -exec會(huì)啟動(dòng)多個(gè)進(jìn)程來處理,而xargs會(huì)啟動(dòng)一個(gè)rm進(jìn)程來處理。

  上面就是Linux刪除文件的方法介紹了,當(dāng)你要?jiǎng)h除指定文件之外的所有文件的話,上面有5種方法可以實(shí)現(xiàn),選一個(gè)自己習(xí)慣的方法試試看看吧。

標(biāo)簽 Linux

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨(dú)特見解

立即評論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄