wildcard scp tidak bekerja di zsh

17

Saya telah beralih ke zsh, dan itu berfungsi dengan baik. Satu hal yang aneh, ketika saya mencoba scp dengan wildcard *, itu tidak berfungsi, dan saya harus jatuh ke bash. Perintah kedua di bawah ini berfungsi dengan baik.

Adakah ide mengapa ini terjadi dan bagaimana cara memperbaikinya?

~/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
sumber

Jawaban:

23

Bash dan Zsh memiliki perilaku default yang berbeda ketika gagal globbing.

Di bash, jika sebuah gumpalan tidak cocok dengan apa pun, Anda mendapatkan kembali gim yang tidak dimodifikasi yang Anda gunakan. Di zsh ini malah melempar kesalahan.

Jadi, Anda perlu mengutipnya.

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

Jika Anda ingin mendapatkan perilaku yang sama dengan bash, Anda dapat melakukan hal berikut

setopt nonomatch
Patrick
sumber
2

Lihatlah jawaban ini di /superuser//a/740728/978073

Untuk pengguna zprezto, menambahkan perintah dengan backslash berfungsi!

Menggantikan,

$ scp <command>

dengan

$ \scp <command>
Gaurav Mittal
sumber