今回、コマンドラインでどうやるんだろうということ困ったことがありました。
同僚の人に教えてもらって解決したのですが、内容は下記のようなものです。
あるAというサーバに下記のようなディレクトリ・ファイル構造があったとします。
foo/bar/file1_log.00000000.gz
foo/bar/file2_log.00000000.gz
foo/bar/file3_log.00000000.gz
foo/file4_log
foo/file5_log
この中で
foo/file4_log
foo/file5_log
この2つだけをBサーバにもっていきたかったのです。
scpでやろうとして、
% scp -r foo/*_log B:/path/to/dir
とやっていたのですが、
tcsh: scp: No match.
などと言われてしまいます。同僚に聞いたところ
% scp -r "foo/*_log" B:/path/to/dir
こうすることで出来ることを知りました。
ようは foo/*_log を先にshellで解釈してもらうということですね。んで、この逆に、
% scp -r B:"foo/*_log" /path/to/dir
という風なこともできます。
って、これって常識?