scp Wildcard funktioniert nicht in zsh


16

Ich habe auf zsh umgestellt, und es funktioniert gut. Eine seltsame Sache: Wenn ich versuche, mit einem Platzhalter * zu scpen, funktioniert das nicht und ich muss mich in die Bash stürzen. Der zweite Befehl unten funktioniert einwandfrei.

Irgendwelche Ideen, warum das so ist und wie man es behebt?

~/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/* .

Antworten:


23

Bash und Zsh haben ein anderes Standardverhalten, wenn es um fehlgeschlagenes Globbing geht.

Wenn ein Glob in der Bash nichts enthält, erhalten Sie den nicht modifizierten Glob zurück, den Sie verwendet haben. In zsh löst dies stattdessen einen Fehler aus.

Also musst du es zitieren.

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

Wenn Sie dasselbe Verhalten wie bash erzielen möchten, können Sie Folgendes tun

setopt nonomatch

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.