SCPコマンドを使って

サーバAからサーバBにファイルのを転送したいと思います。

その際に
サーバAの中に
aaaa.txt
aaaa_bbb.txt
cccc.txt
bbbb.txt
bbbbb_ccc.txt
というファイルがあって、これのaaaa*とbbbb*を一回のSCPコマンドで
取得したいのですが可能でしょうか?

また、上記条件を満たすようなコマンドはありますでしょうか?

教えて下さい。

回答の条件
  • 1人20回まで
  • 登録:2008/12/24 21:47:38
  • 終了:2008/12/31 21:50:03

回答(3件)

id:zzz_1980 No.1

zzz_1980回答回数492ベストアンサー獲得回数642008/12/24 22:26:46

ポイント27pt
% ssh user@remotehost "(cd /mnt/home/zzzz/zzz;tar cf - aaaa.txt bbbb.txt)"|tar xf -
id:hopefully

これは圧縮しているんでしょうか?

シェルで一回圧縮してから転送でしょうか?

2008/12/24 23:12:41
id:sphire No.2

sphire回答回数115ベストアンサー獲得回数122008/12/24 22:56:09

ポイント27pt

cp と一緒ですよ

scp a:/path/to/aaaa* a:/path/to/bbbb* /path/to/target/

id:hopefully

これ出来ますかね?

明日試してみますね。

ありがとうございます。

2008/12/24 23:13:04
id:JULY No.3

JULY回答回数966ベストアンサー獲得回数2472008/12/25 14:20:44

ポイント26pt

scp を使う方法

sphire さんの回答の補足になるのですが、ワイルドカードを指定しているのが、ローカル側かリモート側か、という問題があります。

ローカル側であれば、UNIX 系 OS の一般的なシェルのコマンドラインであれば、シェルがワイルドカードを展開した結果を、scp に渡すことになります。

リモート側にワイルドカードを指定すると、そのままではシェルがワイルドカードを展開しようとしてしまい、結果、シェルが「そんなファイルは無かったよ」といってお終いになってしまいます。

上記のページでは、シェルのワイルドカード展開を防ぐためにダブルクォーテーションで括りましょう、ということを書いています。こうすることによって、ワイルドカードの文字がそのまま scp に渡り、scp がワイルドカード展開をすることで、目的のファイルを見つけられるようになります。

  • id:zzz_1980
    tar に z オプションはつけてませんので、圧縮はしていません。
    | シェルで一回圧縮してから転送でしょうか?
    内部的にはそんな感じです。アーカイブにまとめつつローカルホストとリモートホストの標準入出力間で転送。
    送り側も受け側もunix like なコマンドセットがないとだめです。
    サーバーA/Bどちらか(または両方とも)windowsですか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません