Linux下使用rm删除文件,并排除指定文件(亲测可行)
rm是我們在Linux下刪除文件經常用到的命令,但是有時候我們目錄下有很多個文件想要刪除,偏偏卻要保留其中1個或幾個文件,那怎么辦呢?很多新手朋友可能會采取一個一個文件刪除的方法來操作,但是如果文件很多呢?刪到啥時候啊~~
今天我們就來教大家使用rm命令刪除文件的時候如何排除指定的文件(不刪除指定文件)。首先我們來看一下平時我們是怎么使用rm命令的。
1、刪除單個文件
rm 1.txt2、強制刪除文件,無需確認
rm -rf 1.txt3、刪除文件夾
rm -rf mydir4、刪除目錄下全部文件,包括文件夾
rm -rf *5、刪除全部文件,但保留1.txt
rm -rf?!(1.txt)正常情況下是全部文件被刪除了,只留下了1.txt,但是有時候我們的系統沒配置好,可能會報錯,例如下面這種:
root@abc:/home/# rm -rf !(1.txt) -bash: !: event not found上面這種情況是因為我們的系統沒有開啟通配符功能,我們執行下面的命令開啟通配符功能先:
shopt -s? extglob查看通配符功能是否開啟,on表示已經開啟
shopt -s然后我們再次執行前面的命令就可以看到文件已經全部刪除了,只保留了1.txt
rm -rf?!(1.txt)6、刪除全部文件,保留1.txt和2.txt
rm -rf !(1.txt|2.txt)上面我們說的都是直接用rm + !(嘆號)來排除文件的,下面我們搞個高深一點的,用find +?grep +?xargs三個命令一起用
7、刪除全部文件,保留1.txt
find * | grep -v 1.txt | xargs rm這里我們要特別注意grep的-v參數,-v參數表示反選,比如我們上面指定了-v 1.txt,即排除掉1.txt,選中其他全部文件。所以這樣執行之后1.txt就被排除了
8、刪除全部文件,保留1.txt和2.txt
find * | grep -v '\(1.txt\|2.txt\)' | xargs rm這里要特別留意,括號()跟括號內的豎線|需要添加\進行轉義,否則會報錯
今天講的就這些,都是非常實用的技巧,大家趕緊動手試試吧
總結
以上是生活随笔為你收集整理的Linux下使用rm删除文件,并排除指定文件(亲测可行)的全部內容,希望文章能夠幫你解決所遇到的問題。