rm !(myfile) funktioniert nicht unter OS X?

rm !(myfile) funktioniert nicht unter OS X?

Der Befehl funktioniert unter Linux einwandfrei, aber unter OS X Mountain Lion mache ich Folgendes:

rm !(myfile)

bash beschwert sich:

bash: !: event not found

Gibt es eine Möglichkeit, dasselbe unter OS X zu tun?

Antwort1

Dies liegt daran, dass Sie die Option nicht festgelegt haben extglob, die eine besondere Bedeutung hat !.

Schreiben Sie in Ihre Bash:

shopt -s extglob

Dann sollte der Befehl wie erwartet ausgeführt werden.

Standardmäßig,!erweitertzur Prozess-ID des zuletzt ausgeführten Hintergrundbefehls (asynchron). Mit dem extglobSet !kann verwendet werden fürMustervergleich, jedoch nur in Verbindung mit anschließender Klammer ().

Sie können diese Zeile natürlich auch Ihrer hinzufügen, ~/.bash_profiledamit sie jedes Mal gesetzt wird, wenn Sie Terminal.app öffnen. OS X verwendet standardmäßig eine Login-Shell, daher sollten diese Optionen in ~/.bash_profileund nicht ~/.bashrcin der von Ihnen wahrscheinlich von Linux-Terminalemulatoren gewohnten Weise gesetzt werden.

verwandte Informationen