UNIX/Linuxの部屋 rcpコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド rcp リモートホスト間でファイルをコピー このエントリーをはてなブックマークに追加

リモートホストからローカルホストへ、またはその逆の、ローカルホストからリモートホストへ、ファイル・ディレクトリをコピーすることができる。

ローカルのファイルは、普通通り指定すればよいが、リモートのファイルは
ログインネーム@ホスト名:ファイル名(ディレクトリ名)
という形式で指定する。

% rcp user@host:~/lib/sample .
⇒ リモートホスト host (ログインネーム user) の ~/lib/sample を、ローカルホストのカレントディレクトリにコピー (ファイルを持ってくる)
% rcp sample.txt user@host:/tmp
⇒ ローカルホストのファイル sample.txt をリモートホスト host (ログインネーム user) の/tmp にコピー (ファイルを置きにいく)
% rcp user@host:~/lib/\* .
% rcp "user@host:~/lib/*" .
⇒ リモートホストの ~/lib/ 以下のファイルをカレントディレクトリにコピー。ワイルドカードを使う場合は、シェルにワイルドカードを解釈されないようにエスケープしないといけない。上の例のように、「\」を使ってもよいし、全体を「"〜"」で囲ってもよい。

rcp は「リモート→ローカル」「ローカル→リモート」のファイル転送を行うコマンドだが、cp と同様に「ローカル→ローカル」なコピー機能もある。引数のファイル名に「:」が含まれていない場合、ローカル名ファイル名と見なされてしまう (「:」が含まれていても「/」の後にある場合も同様)。よって、
% rcp sample.txt user@host
とすると、一見リモートホストのホームディレクトリに sample.txt がコピーされるように思えるが、「user@host」に「:」が含まれていないため、ローカルのファイル名と見なされてしまい、ローカルホストのカレントディレクトリに user@host というファイルができてしまう。

rcp・rsh を使うには、リモートホストの ~/.rhosts に、ローカルホスト名とローカルホストでのユーザ名が記述されている必要がある。

rcp・rsh はセキュリティに少々問題がある。詳しくは ~/.rhosts で説明する。
>> Solaris10オンラインマニュアル(man) Solaris10 rcp(1)
>> Linuxオンラインマニュアル(man) Linux rcp(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD rcp(1)