rm !(myfile) не работает на OS X?

rm !(myfile) не работает на OS X?

Команда отлично работает в Linux, но в OS X Mountain Lion я делаю следующее:

rm !(myfile)

Баш жалуется:

bash: !: event not found

Есть ли способ сделать то же самое на OS X?

решение1

Это происходит потому, что вы не установили extglobопцию, которая придает особое значение !.

В своем Bash напишите:

shopt -s extglob

После этого команда должна выполниться так, как и ожидалось.

По умолчанию,!расширяетсяк идентификатору процесса последней выполненной фоновой (асинхронной) команды. С набором extglobможет !использоваться длясопоставление с образцом, но только в сочетании с последующими скобками ().

Конечно, вы можете добавить эту строку в свой, ~/.bash_profileчтобы она устанавливалась каждый раз при открытии Terminal.app. OS X по умолчанию запускает оболочку входа, поэтому эти параметры следует устанавливать, ~/.bash_profileа не ~/.bashrcтак, как вы, вероятно, привыкли в эмуляторах терминала Linux.

Связанный контент