linux rm 命令 排除文件

#排除a.txt 和b.txt文件
​​​​​​​rm -rf !(a.txt|b.txt)

執行後會出現linux

-bash: !: event not found

緣由:
#shopt extglob 未開啓shell

shopt -s extglob  #-s開啓 -u關閉
#shopt命令和extglob是什麼東東

shopt命令bash

shopt(選項)(參數)

#選項
#-s:激活指定的shell行爲選項; 
#-u:關閉指定的shell行爲選項。
#參數
cdable_vars|cdspell|checkhash|checkwinsize|cmdhist|dotglob|......
等等用時自行查找

shopt命令用於顯示和設置shell中的行爲選項,經過這些選項以加強shell易用性。shopt命令若不帶任何參數選項,則能夠顯示全部能夠設置的shell操做選項
來自: http://man.linuxde.net/shopt.net

 

Bash Shell有個extglob選項,開啓以後Shell能夠另外識別出5個模式匹配操做符,能使文件匹配更加方便。
開啓方法很簡單,使用shopt命令:shopt -s extglob 
關閉,使用shopt命令:shopt -u extglob

開啓以後,如下5個模式匹配操做符將被識別:code

  1. ?(pattern-list) - 所給模式匹配0次或1次;
  2. *(pattern-list) - 所給模式匹配0次以上包括0次;
  3. +(pattern-list) - 所給模式匹配1次以上包括1次;
  4. @(pattern-list) - 所給模式僅僅匹配1次;
  5. !(pattern-list) - 不匹配括號內的所給模式。
相關文章
相關標籤/搜索