zshを使用したscp:一致が見つかりません


42

zshでscpを試すと、

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

同じコマンドがbashで機能する


回答の1つを正しいものとしてマークできますか?いくつかはかなりよく見えます。
ジェフ

回答:


73

ワイルドカードをエスケープします。

scp hostA:Descargas/debian-6.0.4-\*

1
QUEUE=*オプションを使用してrubyのレスキューワーカーを実行しようとすると、同じエラーが発生しました。修正してくれてありがとう!
モグラマー14

2
解決策をありがとう...これは、zshがそれ自体の利益のためにあまりにもスマートである例のように思えます...-
オーウェン

1
私のためにも働いた。変だ!
ルーパンク



4

この投稿には、url-quote-magicプラグインを使用してscpコマンドのglobを自動的にエスケープすることで、これに対する優れたソリューションがあります。有効にするには、以下を以下に追加します~/.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)'

*scpまたはrsyncコマンドでリモートパスの一部としてglob文字(など)を入力すると、zshは次のように自動的に前に黒スラッシュを追加します。

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

1
これは厄介だが素晴らしいトリックです。
アッティラO.

1

パーティーには遅すぎるが、..

文字列を引用符でエスケープすることもできます

scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.