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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.