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) - 不匹配括号内的所给模式。
相关文章
相关标签/搜索