symbol wieloznaczny scp nie działa w Zsh


17

Zmieniłem na zsh i działa dobrze. Jedna dziwna rzecz, gdy próbuję scpować z * symbolem wieloznacznym, to nie działa i muszę wpaść w bash. Drugie polecenie poniżej działa dobrze.

Wszelkie pomysły na to, dlaczego tak jest i jak to naprawić?

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

Odpowiedzi:


23

Bash i Zsh mają różne domyślne zachowanie, jeśli chodzi o nieudane globowanie.

W skrócie, jeśli glob nie pasuje do niczego, odzyskujesz niezmodyfikowany glob, którego użyłeś. W Zsh powoduje to błąd.

Dlatego musisz to zacytować.

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

Jeśli chcesz uzyskać takie samo zachowanie jak bash, możesz wykonać następujące czynności

setopt nonomatch

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.