zsh: 특정 명령이나 패턴에 대해 와일드카드를 비활성화하시겠습니까?

zsh: 특정 명령이나 패턴에 대해 와일드카드를 비활성화하시겠습니까?

zsh에서는 와일드카드를 사용할 때 ?또는 *아래와 같이 와일드카드가 활성화됩니다.

ls file?.txt

그러나 다음과 같은 상황에서는 와일드카드를 비활성화하고 싶습니다.

youtube-dl https://www.youtube.com/watch?v=QIysdjpiLcA

'매개변수를 작은따옴표나 큰따옴표( 또는 ) 로 묶어서 "이 문제를 해결할 수 있습니다.

URL과 같은 패턴에 사용될 때 와일드카드를 무시하도록(즉, 와일드카드를 사용하지 않도록) zsh를 어떻게든 구성할 수 있습니까? 아니면 일부 명령/실행 파일의 경우?

답변1

당신이 넣으면noglob명령 앞에는 와일드카드가 사용되지 않습니다.

noglob youtube-dl https://www.youtube.com/watch?v=QIysdjpiLcA

특정 명령에 대해 와일드카드를 비활성화하려면 해당 명령을 별칭으로 설정하세요.

alias youtube-dl='noglob youtube-dl'

이는 URL에 도움이 되지만 ?URL에는 도움이 되지 않습니다 &. &참조 제외의 해석을 비활성화할 수 있는 방법은 없습니다 .

클립보드에 URL이 있으면 붙여넣는 대신 명령을 사용하여 클립보드 내용을 호출할 수 있습니다.

youtube-dl "`xsel`"         # X11 automatic mouse selection
youtube-dl "`xclip -o`"     # X11 automatic mouse selection
youtube-dl "`xsel -b`"      # X11 explicitly copied clipboard
youtube-dl "`xclip -o -sc`" # X11 explicitly copied clipboard
youtube-dl "`pbpaste`"      # macOS clipboard

쉘 기록에는 URL이 아닌 붙여넣은 명령이 포함됩니다. Tab명령이 끝나기 전에 명령줄 끝을 누르면 명령 대체가 URL로 확장됩니다 . (완료 설정에 따라 필요한 키가 다를 수 있습니다.Zsh 명령줄에서 모든 변수를 확장하는 방법은 무엇입니까?그리고Shell이 ​​탭 접두어를 완성할 수 있나요?.)

또는 터미널에서 지원하는 경우괄호 안에 붙여넣기(좋은 최신 제품에서는 이렇게 합니다.) 붙여넣기 전에 Ctrl+를 누르세요 U(또는 숫자 매개변수를 설정하는 다른 항목). URL(또는 붙여넣은 내용)은 따옴표로 묶입니다. 여기에는 브라우저가 무시하는 선행 및 후행 공백이 포함됩니다.

관련 정보