ファイルをコピーする (cp コマンド)

SourceFile または SourceDirectory パラメーターによって指定されたファイルま たはディレクトリーの内容を、TargetFile または TargetDirectory パラメーターによって指定されたファイ ルまたはディレクトリーにコピーするには、cp コマンドを使用します。

TargetFile に指定されたファイルが存在する場合には、警告なしに、ファイルの元の内容が上書きされます。 複数の SourceFile をコピーする場合には、 ターゲットはディレクトリーでなければなりません。

同じ名前のファイルが新規の宛先に存在する場合には、新規宛先のファイルはコピーされたファイルによって上書きされます。 したがって、 ファイルのコピーに新しい 名前を割り当てることは有効な手法です。これにより、宛先ディレクトリーに同じ名前のファイルが確実に存在しないようにします。

SourceFile の コピーをディレクトリーに置くには、TargetDirectory パラメーターに対して、既存のディレクトリーへのパスを指定してください。 このパスの最後に新しいファイル名を指定しない限り、ファイルのそれぞれの名前は、 ディレクトリーへコピーされてからもファイルに保持されます。 また、cp コマンドは、-r-R のいずれかのフラグを指定すると、複数のディレクトリー全体を、ほかの複数のディレクトリーへコピーします。

さらに、-R フラグを使用して、スペシャル・デバイス・ファイルをコピーすることもできます。 -R を 指定すると、スペシャル・ファイルが、新規パス名を使って再作成されます。 -r フラグを指定すると、cp コマンドは、スペシャル・ファイルを正規ファイルへ コピーしようとします。

cp コマンドの 使用例を以下に示します。
  • 現行ディレクトリーの中のファイルのコピーを作成するには、次のように入力します。
    cp prog.c prog.bak
    これにより、 prog.cprog.bak にコピーされます。 prog.bak というファイルがすでに存在しない場合、cp コマンドはこのファイルを作成します。 このファイルが存在する 場合、cp コマンドは、既存のファイルを prog.c ファイルのコピーに置き換えます。
  • 現行ディレクトリーのファイルを別のディレクトリーにコピーするには、次のように入力します。
    cp jones /home/nick/clients
    これに より、jones というファイルが、/home/nick/clients/jones へコピーされます。
  • 1 つのディレクトリー内のすべてのファイルを新規ディレクトリーにコピーするには、次のように入力します。
    cp /home/janet/clients/* /home/nick/customers
    これに より、clients ディレクトリー内のファイルのみが、customers ディレクトリーへコピーされます。
  • ファイルの特定のセットを別のディレクトリーにコピーするには、次のように入力します。
    cp jones lewis smith /home/nick/clients
    これに より、現行作業ディレクトリー内の joneslewis、および smith の各ファイル が、/home/nick/clients ディレクトリーへコピーされます。
  • パターン・マッチング文字を使用してファイルをコピーするには、次のように入力します。
    cp programs/*.c .
    これで、programs ディレクトリー内のファイルのうち .c で終わるファイルが、単一ドット (.) で表される現行ディレクトリーにコピーされます。c と最後のドットの間には、スペースを入力しなければなりません。

完全な構文については、「コマンド・リファレンス 第 1 巻」の cp コマンドを参照してください。