scp wildcard ne fonctionne pas dans zsh

17

Je suis passé à zsh, et cela fonctionne bien. Une chose étrange, lorsque j'essaie de scp avec un caractère générique *, cela ne fonctionne pas, et je dois tomber dans bash. La deuxième commande ci-dessous fonctionne correctement.

Avez-vous des idées sur la raison de ce problème et comment y remédier?

~/dmp  16:06:10
$ scp abc@123:/home/se/exports/201405091107/* .
zsh: no matches found: root@uf3:/home/se/exports/201405091107/*

~/dmp  16:06:53
$ bash 
sean@seanlaptop:~/dmp$ scp abc@123:/home/se/exports/201405091107/* .
ardochhigh
la source

Réponses:

23

Bash et Zsh ont un comportement par défaut différent en ce qui concerne l'échec de la globalisation.

En bash, si un glob ne correspond à rien, vous récupérez le glob non modifié que vous avez utilisé. Dans zsh, cela génère une erreur à la place.

Vous devez donc le citer.

scp 'abc@123:/home/se/exports/201405091107/*' .

Si vous souhaitez obtenir le même comportement que bash, vous pouvez effectuer les opérations suivantes

setopt nonomatch
Patrick
la source
2

Découvrez cette réponse sur /superuser//a/740728/978073

Pour les utilisateurs de zprezto, ajouter la commande avec une barre oblique inverse fonctionne!

Remplacer,

$ scp <command>

avec

$ \scp <command>
Gaurav Mittal
la source