scp com zsh: nenhuma correspondência encontrada

42

quando tento scp sobre zsh, recebo

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

o mesmo comando funciona no bash

Juan Pablo
fonte
Você pode marcar uma das respostas como correta? Alguns parecem muito bons.
Geoff

Respostas:

73

Escape do seu curinga:

scp hostA:Descargas/debian-6.0.4-\*
yPhil
fonte
11
Eu recebi o mesmo erro ao tentar executar um trabalhador de ruby ​​resque com a QUEUE=*opção Obrigado pela correção!
Mogramer 29/08/14
2
Obrigado por solução ... Este parece ser um exemplo de zsh ser demasiado inteligente para seu próprio bem ...
Owen
11
Trabalhou para mim também. Estranho embora!
roopunk
11

ou adicione isso ao seu .zshrc

alias scp='noglob scp'
Per Hurtig
fonte
4

Desmarque a NOMATCHopção para que o zsh deixe o texto sozinho, em vez de reclamar sobre uma falha no glob.

Ignacio Vazquez-Abrams
fonte
11
Oi, como desabilitar isso? em .zshrc?
GoingMyWay 8/16
4

Este post tem uma boa solução para isso, usando o plug-in url-quote-magic para escapar automaticamente dos globs nos comandos scp. Para habilitá-lo, adicione o seguinte ao seu ~/.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)'

Quando você digita um caractere glob (como *) como parte de um caminho remoto em um comando scp ou rsync, o zsh adiciona automaticamente uma barra preta na frente, assim:

scp hostA:Descargas/debian-6.0.4-\* user@192.168.1.154:Escritorio/Software/
mgorven
fonte
11
Este é um truque desagradável, mas agradável.
Attila O.
1

Tarde demais para a festa, mas ..

Você também pode escapar da string com aspas

scp "hostA:Descargas/debian-6.0.4-*" "[email protected]:Escritorio/Software/"
waghcwb
fonte