ZSH가 포함 된 Apt-get * 와일드 카드 ZSH : sudo apt-get remove –purge

ZSH :

sudo apt-get remove --purge ubuntuone-*
ERROR: zsh: no matches found: ubuntuone-*

Bash에서 작동합니다. 뭐가 문제 야 ? :-디



답변

예, zsh그리고 bash이 점에서 다르게 동작합니다.

에서 zshubuntuone-*” 라고 말하면 현재 작업 디렉토리에서 시작하는 파일을 찾습니다. 파일을 ubuntuone-찾을 수 없으므로 ” no matches” 라고 말하고 명령을 실행하지 않습니다.

bash다른 ubuntuone-작업을 수행합니다. 현재 작업 디렉토리에서 시작하는 파일을 찾지 만 “내가 호출하는 프로그램이 와일드 카드를 처리하는 방법을 알고있을 수도 있습니다.” ubuntuone-*sudo apt-get문자 그대로의 논증.

현재 작업 디렉토리에이라는 파일이 있으면 ubuntuone-ffdjhjerbash는 실행하려고 시도하는데 sudo apt-get remove --purge ubuntuone-ffdjhjer실패 할 것입니다.

에서 zsh(와)에서 bash작은 따옴표를 사용하여 와일드 카드를 확장하지 말고 다음과 같이 전달하십시오.

sudo apt-get remove --purge 'ubuntuone-*'

답변

이 답변에 약간 늦을 수도 있지만 이것을 해결할 수있는 방법이 있습니다. 명령 행에서 다음을 실행하십시오.

unsetopt no_match

답변

zsh에서 확장을 막는 다른 방법이 있는데, 따옴표보다 선호합니다.

sudo apt-get remove --purge ubuntuone-\*