Quand j'essaie de dépasser zsh, je reçois
scp hostA:Descargas/debian-6.0.4-* [email protected]:Escritorio/Software/ zsh: no matches found: hostA:Descargas/debian-6.0.4-*
La même commande fonctionne en bash
Évasion de votre caractère générique
scp hostA:Descargas/debian-6.0.4-\*
NOMATCH
option NOMATCH
pour que zsh quitte le texte seul au lieu de se plaindre d'une défaillance globale.
Cette publication a une belle solution à cela en utilisant le plugin url-quote-magic pour échapper automatiquement aux globs dans les commandes scp. Pour l'activer, ajoutez ce qui suit à votre ~/.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)'
Lorsque vous tapez un caractère glob (comme *
) dans le cadre d'un chemin distant dans une commande scp ou rsync, zsh ajoutera automatiquement une barre oblique à l'avant, comme ceci:
scp hostA:Descargas/debian-6.0.4-\* [email protected]:Escritorio/Software/
Ou ajoutez ceci à votre .zshrc
alias scp='noglob scp'
Trop tard pour la fête, mais …
Vous pouvez également échapper à la chaîne avec des citations
scp "hostA:Descargas/debian-6.0.4-*" "[email protected]:Escritorio/Software/"