在管理中經常想刪除除了某個檔案之外的所有檔案?應該如何實現呢?比如我的目錄如下:
[root@localhost aa]# pwd /root/Desktop/aa [root@localhost aa]# ls 1.txt 2.txt 3.txt
我要刪除除了 2.txt 之外的所有檔案,具體方法如下:
[root@localhost aa]# rm -r !(2.txt) bash: !: event not found
提示錯誤,在 archlinux 上如上命令 可以使用。我現在的環境是 centos5.5
解決方法是新增 下變數
[root@localhost aa]# shopt -s extglob
然後再使用上面的命令則可以
[root@localhost aa]# rm -rf !(2.txt) [root@localhost aa]# ls 2.txt
如果是多個要排除的,可以這樣
[root@localhost aa]# ls 1.txt 2.txt 3.txt [root@localhost aa]# rm -rf !(1.txt|2.txt) [root@localhost aa]# ls 1.txt 2.txt
此命令只對當前終端有效,換個終端或者退出之後,需要重新執行才能有效。。。