大量のファイルを本番ホストからローカル マシンに転送する必要があります。ファイルを転送する必要があるディレクトリに既にいます。ローカル マシンに転送する必要があるログ ファイルの名前を知っています。これらは log.timestamp.hostnames であり、長くなる傾向があります。scp を使用して一括転送するにはどうすればよいですか? 長いファイル名を入力するよりも簡単な方法はありますか? ファイル名から取得できますか?
質問する
3193 次
3 に答える
6
ワイルドカードを使用:
scp log.* user@host:/target/directory
于 2013-09-19T16:52:14.977 に答える
0
このコマンド ライン実行オプションは、ファイルのサブセットを転送するという私の問題を解決するのに役立ちました。AIX unix は find で -regextype オプションを提供しないため、ファイル tab1.msg を tab9 msg に取得するために、代わりに grep コマンドを使用しました。
scp $(find . -name "*" | grep tab.\.msg) user@host:/tmp
于 2014-05-29T02:23:03.933 に答える
0
現在のディレクトリ内のすべてのファイルをコピーしたくない場合 (./* を使用するだけです)、現在のディレクトリ内のすべてのファイルを解析し、正規表現を実行して、 log.timestamp.hostname を照合し、それを scp にパイプします。正規表現については、この例の正規表現を find で見つけました。ここで大きなファイルを送信するには、例を示します: scp syntax。次のようなもの:
scp $(find . -regextype sed -regex ".*/log\.[a-z0-9\-]\.[a-z0-9\-]") user@remote:~/
正規表現を機能させるには、おそらく正規表現を変更する必要があります。
于 2013-09-19T17:06:22.827 に答える