这里介绍一下反选删除文件的方法,即删除指定文件(目录)之外的所有文件(目录)。
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