rm 删除文件提示 -bash: !: event not found 错误怎么解决?

rm 删除某个文件(文件夹)外所有文件,如 rm -rf !(ftmp) —— 删除当前目录下除 ftmp 开头的文件/文件夹外所有文件和目录,提示 -bash: !: event not found 错误怎么解决?

rm 删除文件提示 -bash: !: event not found 错误怎么解决?插图

-bash: !: event not found 错误怎么解决?

rm -rf !(ftmp) —— 删除当前目录下除 ftmp 开头的文件/文件夹外所有文件和目录,提示 -bash: !: event not found 错误怎么解决?

風冷無霜 0xo.net|uxtt.com|867755.com…
「rm 删除文件提示 -bash: !: event not found 错误怎么解决?:https://bdkp.net/25」

错误原因:未开启扩展通配符

shopt 使用

shopt [-psu] [optname …]

  • -s 开启某个选项
  • -u 关闭某个选项
  • -p 列出所有可设置的选项

列出所有可设置选项:shopt -p

風冷無霜 0xo.net|uxtt.com|867755.com…
「rm 删除文件提示 -bash: !: event not found 错误怎么解决?:https://bdkp.net/25」

rm 删除文件提示 -bash: !: event not found 错误怎么解决?插图1

查看扩展通配符是否开启:shopt extglob

开启扩展通配符:shopt -s extglob

風冷無霜 0xo.net|uxtt.com|867755.com…
「rm 删除文件提示 -bash: !: event not found 错误怎么解决?:https://bdkp.net/25」

开启 extglob 扩展通配符再执行 rm -rf !(ftmp) 就不会报错了。

如何经常使用,还可以写成 shell 脚本,如:

#! /bin/bash
cd /root/test
shopt -s extglob
rm -rf !(lock|unlock)
echo ***Cleaning Done***

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注