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

Juan Pablo
fuente
¿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-\*
yPhil
fuente
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
11

o agregue esto a su .zshrc

alias scp='noglob scp'
Por Hurtig
fuente
4

Desactive la NOMATCHopción para que zsh deje el texto solo en lugar de quejarse de un error global.

Ignacio Vazquez-Abrams
fuente
1
Hola, ¿cómo deshacer eso? en .zshrc?
GoingMyWay
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/
mgorven
fuente
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-*" "[email protected]:Escritorio/Software/"
waghcwb
fuente