Linux下使用rm刪除文件,并排除指定文件
推薦文章
Linux TCP狀態(tài)TIME_WAIT 過(guò)多的處理

?? rm是我們?cè)贚inux下刪除文件經(jīng)常用到的命令,但是有時(shí)候我們目錄下有很多個(gè)文件想要?jiǎng)h除,偏偏卻要保留其中1個(gè)或幾個(gè)文件,那怎么辦呢?很多新手朋友可能會(huì)采取一個(gè)一個(gè)文件刪除的方法來(lái)操作,但是如果文件很多呢?刪到啥時(shí)候啊~~
?
今天我們就來(lái)教大家使用rm命令刪除文件的時(shí)候如何排除指定的文件(不刪除指定文件)。首先我們來(lái)看一下平時(shí)我們是怎么使用rm命令的。
1、刪除單個(gè)文件
rm 1.txt2、強(qiáng)制刪除文件,無(wú)需確認(rèn)
rm -rf 1.txt3、刪除文件夾
rm -rf mydir4、刪除目錄下全部文件,包括文件夾
rm -rf *5、刪除全部文件,但保留1.txt
rm -rf !(1.txt)正常情況下是全部文件被刪除了,只留下了1.txt,但是有時(shí)候我們的系統(tǒng)沒(méi)配置好,可能會(huì)報(bào)錯(cuò),例如下面這種:
root@abc:/home/# rm -rf !(1.txt)-bash: !: event not found
上面這種情況是因?yàn)槲覀兊南到y(tǒng)沒(méi)有開(kāi)啟通配符功能,我們執(zhí)行下面的命令開(kāi)啟通配符功能先:
shopt -s extglob查看通配符功能是否開(kāi)啟,on表示已經(jīng)開(kāi)啟
shopt -s
然后我們?cè)俅螆?zhí)行前面的命令就可以看到文件已經(jīng)全部刪除了,只保留了1.txt
rm -rf !(1.txt)6、刪除全部文件,保留1.txt和2.txt
rm -rf !(1.txt|2.txt)上面我們說(shuō)的都是直接用rm + !(嘆號(hào))來(lái)排除文件的,下面我們搞個(gè)高深一點(diǎn)的,用find +?grep +?xargs三個(gè)命令一起用
7、刪除全部文件,保留1.txt
find * | grep -v 1.txt | xargs rm這里我們要特別注意grep的-v參數(shù),-v參數(shù)表示反選,比如我們上面指定了-v 1.txt,即排除掉1.txt,選中其他全部文件。所以這樣執(zhí)行之后1.txt就被排除了
8、刪除全部文件,保留1.txt和2.txt
find * | grep -v '\(1.txt\|2.txt\)' | xargs rm這里要特別留意,括號(hào)()跟括號(hào)內(nèi)的豎線|需要添加\進(jìn)行轉(zhuǎn)義,否則會(huì)報(bào)錯(cuò)
今天講的就這些,都是非常實(shí)用的技巧,大家趕緊動(dòng)手試試吧
