コマンド
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 で説明する。