scp con zsh: no se encontraron coincidencias


42

cuando intento scp sobre zsh, obtengo

scp hostA:Descargas/debian-6.0.4-* user@192.168.1.154:Escritorio/Software/
zsh: no matches found: hostA:Descargas/debian-6.0.4-*

el mismo comando funciona en bash


¿Puedes marcar una de las respuestas como correcta? Algunos se ven bastante bien.
Geoff

Respuestas:


73

Escape de su comodín:

scp hostA:Descargas/debian-6.0.4-\*

1
Obtuve el mismo error al intentar ejecutar un trabajador de resque ruby ​​con la QUEUE=*opción. Gracias por la solución!
mogramer

2
Gracias por la solución ... Esto parece un ejemplo de zsh siendo demasiado inteligente para su propio bien ...
Owen

1
A mi también me sirvió. ¡Aunque extraño!
roopunk



4

Esta publicación tiene una buena solución para esto mediante el uso del complemento url-quote-magic para escapar automáticamente de los globos en los comandos scp. Para habilitarlo, agregue lo siguiente a su ~/.zshrc:

# Automatically quote globs in URL and remote references
__remote_commands=(scp rsync)
autoload -U url-quote-magic
zle -N self-insert url-quote-magic
zstyle -e :urlglobber url-other-schema '[[ $__remote_commands[(i)$words[1]] -le ${#__remote_commands} ]] && reply=("*") || reply=(http https ftp)'

Cuando escribe un carácter global (como *) como parte de una ruta remota en un comando scp o rsync, zsh agregará automáticamente una barra negra al frente, como esta:

scp hostA:Descargas/debian-6.0.4-\* user@192.168.1.154:Escritorio/Software/

1
Este es un truco desagradable pero agradable.
Atila O.

1

Demasiado tarde para la fiesta, pero ...

También puedes escapar de la cadena con comillas

scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.