scp dengan zsh: tidak ada yang ditemukan


42

ketika saya mencoba scp over zsh, saya mengerti

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

perintah yang sama bekerja di bash


Bisakah Anda menandai salah satu jawaban sebagai benar? Beberapa terlihat bagus.
Geoff

Jawaban:


73

Lepaskan wildcard Anda:

scp hostA:Descargas/debian-6.0.4-\*

1
Saya mendapat kesalahan yang sama ketika mencoba menjalankan pekerja resi ruby ​​dengan QUEUE=*opsi. Terima kasih untuk perbaikannya!
mogramer

2
Terima kasih atas solusinya ... Ini sepertinya contoh dari zsh yang terlalu pintar untuk kebaikannya sendiri ...
Owen

1
Bekerja untuk saya juga. Namun aneh!
roopunk



4

Posting ini memiliki solusi yang bagus untuk ini dengan menggunakan plugin url-quote-magic untuk secara otomatis lolos dari gumpalan dalam perintah scp. Untuk mengaktifkannya, tambahkan yang berikut ke ~/.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)'

Saat Anda mengetik karakter gumpalan (seperti *) sebagai bagian dari lintasan jarak jauh dalam perintah scp atau rsync, zsh akan secara otomatis menambahkan blackslash di depan, seperti ini:

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

1
Ini adalah trik yang jahat tetapi menyenangkan.
Attila O.

1

Terlambat untuk pestanya, tapi ..

Anda dapat menghindari string dengan tanda kutip juga

scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.