zsh로 포팅하려는 bash에 별칭이 있습니다. 별칭 자체일 수도 있다고 생각했는데 지금은 그냥 와일드카드인 것 같습니다.
grep -irl --exclude=\*.{log,class,fuegoclass,dat}* --exclude-dir={build,system,lib} data
zsh에서 이러한 파일 확장자와 디렉터리를 제외하는 올바른 방법은 무엇입니까?
답변1
존재하다:
grep -irl --exclude=\*.{log,class,fuegoclass,dat}* --exclude-dir={build,system,lib} data
zsh
및 에서는 먼저 로 확장된 bash
다음 따옴표가 없기 때문에 각각은 와일드카드를 수행하는 패턴으로 처리됩니다.--exclude=\*.{log,class,fuegoclass,dat}*
--exclude=\*.log* --exclude=\*.class* --exclude=\*.fuegoclass* --exclude=\*.dat*
*
예를 들어 --exclude=\*.log*
현재 디렉터리의 이름을 --exclude=*.log
.
일치하지 않는 glob이 있으면 zsh
명령이 중단됩니다. 에서는 bash
구가 자체적으로 확장됩니다.
여기서는 와일드카드가 필요하지 않으므로 모든 와일드카드 문자를 인용해야 합니다( 및 에서 오류를 지적하기 만 하면 됩니다 zsh
) .bash
zsh
grep -irl --exclude=\*.{log,class,fuegoclass,dat}\* --exclude-dir={build,system,lib} data