【mac】zshのscpコマンドでワイルドカードを指定するときにzsh: no matches found

zshの環境でscpコマンドにワイルドカード使用して実行しようとするとうまくいかなかったときの解決方法

scpコマンドでダウンロード

ssh先ユーザーVMホスト名
totagivm-totagi

の想定で

scp totagi@vm-totagi:~/hoge.log Documents

リモート先のhoge.logファイルをダウンロードする場合に.logファイルをすべてダウンロードしたい。

scp totagi@vm-totagi:~/*.log Documents

ワイルドカードを使用すると

zsh: no matches found: scp totagi@vm-totagi:~/*.log Documents

とでる。

方法1 zshの環境を変える

ワイルドカードに補完がかかってしまうらしいので

setopt nonomatch
scp totagi@vm-totagi:~/*.log Documents

とする毎回面倒なので.zshrcsetopt nonomatchを記載してもよい。

方法2 “(ダブルクォーテーション) '(シングルクォーテーション)で囲む

scp "totagi@vm-totagi:~/*.log" Documents
scp 'totagi@vm-totagi:~/*.log' Documents

おわりに

どちらでもいいが自分は方法2で実行するようにしています。

コメント