Evita que zsh intente expandir todo

7

Recientemente cambié de bash, noté que zshintentará expandir cada comando o argumento que parece tener comodines. Entonces las siguientes líneas ya no funcionarán:

git diff master{,^^}
zsh: no matches found: master^^

scp remote:~/*.txt .
zsh: no matches found: remote:~/*.txt

La única forma de hacer que funcionen los comandos anteriores es citar los argumentos, lo cual es bastante molesto.

P: ¿Cómo configuro zshpara intentar expandir los comodines, pero si no hay coincidencias, simplemente paso el argumento tal como está?

EDITAR: posiblemente relacionado: scp con zsh: no se encontraron coincidencias

Atila O.
fuente

Respuestas:

6

Es una característica prevista de zsh. cuando se usa cualquier shell, se considera una buena práctica citar cualquier carácter que se considere metacarácter para el shell. ^es un patrón utilizado para negar una cadena cuando extendedglobse establece la opción . *es un patrón utilizado para hacer coincidir cero o más caracteres.

Puede detenerlo deshabilitando la opción nomatch. Pero al hacerlo, sus patrones sin comillas hacen que sus declaraciones sean volátiles, dependiendo de qué archivos puedan estar presentes en el directorio de trabajo actual. No deberías hacer eso.

llua
fuente
Tal vez no debería, pero es bastante tentador hacerlo. Solía ​​pensar que tampoco debería tener muchos alias. Pero al final, todo lo que importa es cuánto tiempo me toma escribir un comando en mi máquina.
Atila O.