Solaris のシステム管理 (ネットワークサービス)

Procedureローカルシステムとリモートシステム間でファイルをコピーする方法 (rcp)

  1. コピーする許可を持っているかどうかを確認します。

    少なくとも、コピー元システム上で読み取り権を持ち、コピー先システム上で書き込み権を持っているべきです。

  2. コピー元とコピー先の場所を決定します。

    コピー元またはコピー先のパスがわからない場合は、まず rlogin コマンドを使用してリモートシステムにログインします (「リモートシステムにログインする方法 (rlogin)」を参照)。次に、そのパスが見つかるまでリモートシステム上を移動します。その後は、ログアウトしなくても次の手順を実行できます。

  3. ファイルまたはディレクトリをコピーします。


    $ rcp [-r] source-file|directory   target-file|directory
    
    rcp

    (オプションなし) コピー元からコピー先にファイルを 1 つコピーする

    -r

    コピー元からコピー先にディレクトリをコピーする

    この構文は、リモートシステムとローカルシステムのどちらにログインするかに関係なく適用されます。表 29–4 で説明したとおり、ファイルやディレクトリのパス名のみをこのあとで示す例のように変更します。

    ~」と「.」を使用すると、ローカルのファイル名やディレクトリ名のパス部分を指定できます。ただし、「~」はリモートシステムではなく現在のユーザーに適用されることと、「.」はログイン先のシステムに適用されることに注意してください。この 2 つの記号については、表 29–4 を参照してください。


例 29–8 rcp を使用してリモートファイルをローカルシステムにコピーする

次の例では、rcp はファイル letter.doc をリモートシステム pluto/home/jones ディレクトリから、ローカルシステム earth 上の作業用ディレクトリ (/home/smith) にコピーします。


earth(/home/smith): rcp pluto:/home/jones/letter.doc .

この例では、リモートログインをしないで rcp 操作を実行しています。コマンド行の最後にある「.」記号は、リモートシステムではなく、ローカルシステムを表します。

コピー先ディレクトリもローカルユーザーのホームディレクトリなので、「~」記号で指定することもできます。



例 29–9 rloginrcp を使用してリモートファイルをローカルシステムにコピーする

次の例では、rlogin コマンドの実行後に rcp 操作が実行され、リモートシステムからローカルシステムにファイルをコピーしています。操作の流れは前述の例と同じですが、リモートログインによりパスが変更になります。


earth(/home/smith): rlogin pluto
.
.
.
pluto(/home/jones): rcp letter.doc ~

コマンド行の最後に「.」記号を使用するのは、この例では不適切です。リモートログインが行われているので、「.」記号はリモートシステムを指し、実際には rcp に重複したファイルを作成させることになります。ただし、「~」は、リモートシステムにログインするときにも現在のユーザーのホームディレクトリを指します。



例 29–10 rcp を使用してローカルファイルをリモートシステムにコピーする

次の例で、rcp はファイル notice.doc をローカルシステム earth のホームディレクトリ (/home/smith) からリモートシステム pluto/home/jones ディレクトリにコピーします。


earth(/home/smith): rcp notice.doc pluto:/home/jones

リモートファイル名が指定されていないので、ファイル notice.doc/home/jones ディレクトリに同じ名前でコピーされます。

次の例では、前の例と同じように rcp 操作が行われますが、rcp はローカルシステム上の別の作業用ディレクトリ (/tmp) で入力されます。現在のユーザーのホームディレクトリを指すために「~」記号が使われているので注意してください。


earth(/tmp): rcp ~/notice.doc pluto:/home/jones


例 29–11 rloginrcp を使用してローカルファイルをリモートシステムにコピーする

次の例では、rlogin コマンドの実行後に rcp 操作が実行され、ローカルファイルをリモートディレクトリにコピーしています。操作の流れは前に示した例と同じですが、リモートログインによりパスが変更になります。


earth(/home/smith): rlogin pluto
.
.
.
pluto(/home/jones): rcp ~/notice.doc .

現在のユーザーのホームディレクトリはローカルシステム上にありますが、「~」記号によりそのディレクトリが表されます。ユーザーはリモートシステムにログインしているので、「.」記号はリモートシステム上の作業用ディレクトリを表します。次の構文を使用しても同じ操作を実行します。


pluto(/home/jones): rcp earth:/home/smith/notice.doc /home/jones