SCPコマンドで、フォルダを跨いで複数ファイルをダウンロードする

見出し



SCPで複数ファイルをダウンロードするとき、たいてい次のようなコマンドで実行すると思います。
scp user@remote:/remote/path/*.log /local/path/


しかし、今回は、以下のような構成で、ばらばらのディレクトリ内のファイルを、1行のscpコマンドで取得したいと思いました。
3回のscpで1つずつ取得することもできますが、それではファイルごとにパスワードを求められてしまい、手間がかかります。
/fruit
│
├─apple
│      file_apple.log ←ダウンロードしたい
│
├─grape
│      file_grape.log ←ダウンロードしたい
│
└─orange
        file_orange.log ←ダウンロードしたい


ファイルの上位フォルダが異なるため、どうすればよいのか悩みます。

そして、いろいろと試行錯誤した結果、以下のような簡単なコマンドで取得できました。
scp user@remote:/fruit/*/file_*.log /local/path/

このように、パスの途中のディレクトリに対しても、ワイルドカードは展開できるようです。
ワイルドカードってすげー。
ちなみに、今回確認した環境は CentOS 7です。

なお、ワイルドカードにはスラッシュは含まれない模様。
そのため、想定外のディレクトリまで触れてしまう事態にはならないようです。ちゃんとしていますね。