Como posso desabilitar o globbing para argumentos de URL no Zsh? [duplicado]

2

Eu só queria baixar um vídeo do YouTube usando youtube-dl , no entanto, zsh interpreta o ponto de interrogação ? (que separa a parte da consulta do URL) como um operador curinga globbing (que corresponde a qualquer caractere único) e portanto, ele aborta o comando com a seguinte mensagem de erro:

$ youtube-dl https://www.youtube.com/watch?v=eDSESarTQXk
zsh: no matches found: https://www.youtube.com/watch?v=eDSESarTQXk

Existe uma maneira de fazer com que zsh reconheça URLs, talvez usando expressões regulares, para que não tente globá-las?

    
por Lenar Hoyt 04.10.2015 / 20:18

2 respostas

3

Você pode desativar a opção NOMATCH "de zsh :

setopt NO_NOMATCH

Enquanto a opção NOMATCH estiver habilitada (que é o padrão) zsh imprime uma mensagem de erro se um padrão não corresponder a um nome de arquivo. Desativando NOMATCH , os padrões que não correspondem a um nome de arquivo são mantidos inalterados na lista de argumentos.

Observe que o nome da opção é realmente NOMATCH , portanto, você precisa usar NO_NOMATCH para desativá-la. A configuração MATCH não funciona.

Atenção : isso afeta todos os globbing, não apenas os URLs. Então, se você confiar de alguma forma em zsh retornando erros quando os padrões não coincidirem, este não é o caminho a ser seguido. (Infelizmente, ao contrário de NULL_GLOB , não há qualificador de glob que permita ativar / desativar NOMATCH por caso.)

    
por 05.10.2015 / 13:26
1

Você pode colocar o URL entre aspas e funciona.

$ youtube-dl 'https://www.youtube.com/watch?v=eDSESarTQXk'
[youtube] eDSESarTQXk: Downloading webpage
[youtube] eDSESarTQXk: Downloading video info webpage
[youtube] eDSESarTQXk: Extracting video information
...
    
por 04.10.2015 / 20:23

Tags