【scp】Linuxでリモート・ローカル間でファイルを転送するコマンド

Linuxでローカルホストとリモートホスト間でファイルを転送する場合は、scpコマンドを使います。scpコマンドはSSHプロトコルを使用します。そのため、ネットワーク通信は暗号化されるので、安全にファイルの転送を行うことができます。

scpコマンドの使い方

scpコマンドの構文は以下の通りです。

主なオプション

-C 通信を圧縮する
-i 秘密鍵ファイル RSAまたはDSA認証の秘密鍵ファイルを指定する
-P ポート番号 ポート番号を指定する
-p オリジナルファイルの更新時間とモードを維持する
-r ディレクトリ内を再帰的にコピーする
-v プログレス情報を表示する
-1 SSH1を使用する
-2 SSH2を使用する
-4 IPv4を使用する
-6 IPv6を使用する

リモートホストからローカルにファイルをコピーする

リモートホストからローカルの「~/tmp」にコピーする例を3つ示します。

scpコマンドでは「@」の前にリモートホストに接続するユーザー名を指定します。また、「@」の後に「ホスト名」または「IPアドレス」を指定し、「:」の後にファイルパスを指定します。

ローカルからリモートホストにファイルをコピーする

ローカルの「~/tmp/file1」をリモートホストの「/home/user/tmp/」にコピーする例です。

リモートホストから別のリモートホストにファイルをコピーする

リモートホスト「user1@192.168.10.1」のファイル「/home/user/tmp/file1」をリモート・ホスト「user2@192.168.10.2」の「/home/user/tmp/」へコピーする例です。

ディレクトリごとコピーを行う

ディレクトリごと再帰的にコピーする場合、「-r」オプションを指定します。

リモートホストの「/home/user/tmp」以下のファイルとディレクトリすべてをローカルの「~/tmp」にコピーする例です。

情報を保持したままコピーを行う

コピー元ファイルとディレクトリの更新時間、アクセス時間、パーミッションを保持したまま転送する場合は、「-p」オプションを指定します。ただし、所有者やグループの情報は引き継がれません。

リモートホストの「/home/user/tmp」以下のファイルとディレクトリすべてを、ファイルの更新時間、アクセス時間、パーミッションを保持してローカルの「~/tmp」にコピーする例です。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて