rm !(myfile) 在 OS X 上不起作用?

rm !(myfile) 在 OS X 上不起作用?

该命令在 Linux 上运行良好,但在 OS X Mountain Lion 上运行时:

rm !(myfile)

bash 抱怨:

bash: !: event not found

有没有办法在 OS X 上做同样的事情?

答案1

这是因为您没有设置该extglob选项,该选项赋予了 特殊含义!

在你的 Bash 中写入:

shopt -s extglob

然后,命令应该按预期运行。

默认情况下,!扩展为最近执行的后台(异步)命令的进程 ID。使用该extglob设置,!可用于模式匹配,但只能与其后的括号一起使用()

当然,您可以将此行添加到您的终端中,~/.bash_profile以便在您打开 Terminal.app 时进行设置。OS X 默认运行登录 shell,因此这些选项应该设置,~/.bash_profile而不是~/.bashrc像您可能习惯的 Linux 终端仿真器那样。

相关内容