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_profileTerminal.app을 열 때마다 설정되도록 할 수도 있습니다. OS X는 기본적으로 로그인 셸을 실행하므로 이러한 옵션은 Linux 터미널 에뮬레이터에서 익숙하지 ~/.bash_profile않은 방식으로 설정해야 합니다 .~/.bashrc

관련 정보