Linux 刪除除某個檔案之外的所有檔案
不知你是否想過在Linux命令列上,如何實現刪除除了某個檔案之外的所有檔案?
如abc資料夾下有a、b、c三個檔案,如何一行命令刪除b和c,不刪除a。有位童鞋在工作經常有此需求,本文將介紹其他童鞋提供的實現方法。
其中rm -f !(a) 最為方便。如果保留a和b,可以執行rm -f !(a|b)來實現。
不過一般bash中執行後會提示
“-bash: !: event not found ” 可以通過執行shopt -s extgolb來解決。如下:
[[email protected] /]# mkdir abc
[[email protected] /]# cd abc
[[email protected] abc]# touch a b c
[[email protected] abc]# ls
a b c
[[email protected] abc]# rm -f !(a)
-bash: !: event not found
[[email protected] abc]# shopt -s extglob
[[email protected] abc]# rm -f !(a)
[[email protected] abc]# ls
a
[[email protected] abc]# touch b c d
[[email protected] abc]# rm -f !(a|b)
[[email protected] abc]# ls
a b
另外也可以使用下面的方法:
[[email protected] abc]# ls
a b c
[[email protected] abc]# ls |grep -v a |xargs rm -f
[[email protected] abc]# ls
a
轉載自https://blog.csdn.net/wqhjfree/article/details/16800253