scp với zsh: không tìm thấy kết quả khớp


42

Khi tôi thử scp qua zsh, tôi nhận được

scp hostA:Descargas/debian-6.0.4-* user@192.168.1.154:Escritorio/Software/
zsh: no matches found: hostA:Descargas/debian-6.0.4-*

lệnh tương tự làm việc trong bash


Bạn có thể đánh dấu một trong những câu trả lời là đúng không? Một số nhìn khá tốt.
Geoff

Câu trả lời:


73

Thoát ký tự đại diện của bạn:

scp hostA:Descargas/debian-6.0.4-\*

1
Tôi đã gặp lỗi tương tự khi cố gắng chạy một nhân viên phục vụ ruby ​​với QUEUE=*tùy chọn. Cảm ơn đã sửa chữa!
vẽ hình

2
Cảm ơn giải pháp ... Đây có vẻ như là một ví dụ về việc zsh quá thông minh vì lợi ích của chính nó ...
Owen

1
Làm việc cho tôi là tốt. Lạ thay!
roopunk


4

Bỏ đặt NOMATCHtùy chọn để zsh để lại văn bản một mình thay vì phàn nàn về một thất bại toàn cầu.


1
Xin chào, làm thế nào để bỏ đặt nó? trong .zshrc?
Đi MYWay

4

Bài đăng này có một giải pháp tốt cho vấn đề này bằng cách sử dụng plugin url-quote-Magic để tự động thoát khỏi các khối trong các lệnh scp. Để kích hoạt nó, hãy thêm những thứ sau vào ~/.zshrc:

# Automatically quote globs in URL and remote references
__remote_commands=(scp rsync)
autoload -U url-quote-magic
zle -N self-insert url-quote-magic
zstyle -e :urlglobber url-other-schema '[[ $__remote_commands[(i)$words[1]] -le ${#__remote_commands} ]] && reply=("*") || reply=(http https ftp)'

Khi bạn nhập một ký tự toàn cầu (như *) như một phần của đường dẫn từ xa trong lệnh scp hoặc rsync, zsh sẽ tự động thêm một dấu gạch chéo phía trước, như sau:

scp hostA:Descargas/debian-6.0.4-\* user@192.168.1.154:Escritorio/Software/

1
Đây là một mẹo khó chịu nhưng tốt đẹp.
Attila O.

1

Quá muộn cho bữa tiệc, nhưng ..

Bạn cũng có thể thoát chuỗi bằng dấu ngoặc kép

scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.