scp con zsh: nessuna corrispondenza trovata


42

quando provo scp su zsh, ottengo

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

lo stesso comando funziona in bash


Riesci a contrassegnare una delle risposte come corrette? Alcuni sembrano piuttosto buoni.
Geoff,

Risposte:


73

Esci dal tuo jolly:

scp hostA:Descargas/debian-6.0.4-\*

1
Ho avuto lo stesso errore durante il tentativo di eseguire un lavoratore resque ruby ​​con l' QUEUE=*opzione. Grazie per la correzione!
mogramer,

2
Grazie per la soluzione ... Sembra un esempio di zsh troppo intelligente per il suo bene ...
Owen,

1
Ha funzionato anche per me. Strano però!
roopunk,



4

Questo post ha una buona soluzione a questo usando il plugin url-quote-magic per sfuggire automaticamente ai globs nei comandi scp. Per abilitarlo, aggiungi quanto segue al tuo ~/.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 digiti un carattere glob (come *) come parte di un percorso remoto in un comando scp o rsync, zsh aggiungerà automaticamente una barra nera davanti, in questo modo:

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

1
Questo è un trucco cattivo ma carino.
Attila O.

1

Troppo tardi per la festa, ma ..

Puoi sfuggire alla stringa anche tra virgolette

scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.