这里介绍一下反选删除文件的方法,即删除指定文件(目录)之外的所有文件(目录)。

extglob模式介绍

在开始之前,先介绍一下extglob模式

extglob模式开启之后,shell可以识别5个模式匹配c操作符,否则反选删除命令会无效。

  • ?(pattern-list) - 所给模式匹配0次或1次;

  • *(pattern-list) - 所给模式匹配0次以上包括0次;

  • +(pattern-list) - 所给模式匹配1次以上包括1次;

  • @(pattern-list) - 所给模式仅仅匹配1次;

  • !(pattern-list) - 不匹配括号内的所给模式。

开启命令:

shopt -s extglob

关闭命令:

shopt -u extglob

反选删除命令

删除单个文件

rm -rf !(file)

删除多个文件

rm -rf !(file1|file2)

如果终端提示

bash: !: event not found

这种情况说明extglob模式没有开启,需要执行

shopt -s extglob
最后修改:2020 年 08 月 02 日 12 : 36 PM