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,因此這些選項應該在 Linux 終端模擬器中設置,~/.bash_profile而不是~/.bashrc像您可能習慣的那樣。

相關內容