scp wildcard ไม่ทำงานใน zsh


17

ฉันเปลี่ยนไปใช้ zsh แล้วและก็ใช้งานได้ดี สิ่งหนึ่งที่แปลกประหลาดเมื่อฉันพยายาม scp ด้วย * wildcard มันใช้งานไม่ได้และฉันต้องไปทุบตี คำสั่งที่สองด้านล่างใช้งานได้ดี

ความคิดเห็นใด ๆ เกี่ยวกับสาเหตุที่เป็นเช่นนี้และจะแก้ไขได้อย่างไร

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

คำตอบ:


23

Bash และ Zsh มีพฤติกรรมเริ่มต้นที่แตกต่างกันเมื่อมันมาถึงการล้มเหลว

ในทุบตีหาก glob ไม่ตรงกับสิ่งใดคุณจะได้รับ glob คืนที่คุณไม่ได้ใช้ ใน zsh นี้จะโยนข้อผิดพลาดแทน

ดังนั้นคุณต้องพูดมัน

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

หากคุณต้องการได้รับพฤติกรรมเช่นเดียวกับทุบตีคุณสามารถทำดังต่อไปนี้

setopt nonomatch

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.