cp コマンドは、ファイルやディレクトリをコピーするための基本的なコマンドです。本章では、UNIX環境における cp コマンドの使用方法について解説します。GNU/Linux特有の拡張は扱わず、POSIX規格に準拠した内容に限定します。

基本的な使い方

編集

構文

編集
cp [オプション] ソース... ターゲット
  • ソース: コピー元のファイルやディレクトリ。
  • ターゲット: コピー先のファイルやディレクトリ。
$ cp file1.txt file2.txt

file1.txt の内容を file2.txt にコピーします。

$ cp file1.txt /path/to/directory/

file1.txt を指定したディレクトリにコピーします。

主なオプション

編集

以下は、POSIX規格に準拠した主なオプションです。

-i: 確認を求める

編集

コピー先に同名のファイルが存在する場合に、上書きするかどうかを確認します。

$ cp -i file1.txt file2.txt
overwrite file2.txt? (y/n) y

-p: 属性を保持

編集

ファイルのタイムスタンプ、所有権、パーミッションを保持したままコピーします。

$ cp -p file1.txt file2.txt

-R: 再帰的にコピー

編集

ディレクトリを再帰的にコピーします。コピー元がディレクトリの場合、このオプションが必要です。

$ cp -R dir1/ dir2/

dir1 の内容を dir2 にコピーします。

-f: 強制コピー

編集

コピー先に既存のファイルがある場合でも、強制的に上書きします。

$ cp -f file1.txt file2.txt

注意点

編集
  1. 既存ファイルの上書き
    • デフォルトでは、cp コマンドは確認を求めずにコピー先のファイルを上書きします。安全のために -i オプションを使用することが推奨されます。
  2. ディレクトリのコピー
    • ディレクトリをコピーする場合は -R オプションを必ず指定してください。指定しないとエラーになります。
  3. 属性の保持
    • -p オプションを使用すると、元のファイルのタイムスタンプやパーミッションをコピー先に引き継ぐことができます。
  4. シンボリックリンクの扱い
    • デフォルトでは、cp はシンボリックリンク自体をコピーします。リンク先の内容をコピーする場合は追加のオプションが必要ですが、本章ではPOSIXに準拠するため詳細は割愛します。

例題

編集

例1: 単一ファイルをコピー

編集
$ cp file1.txt backup.txt

file1.txtbackup.txt としてコピーします。

例2: ディレクトリ全体をコピー

編集
$ cp -R project/ project_backup/

project ディレクトリの内容を project_backup にコピーします。

例3: 属性を保持してコピー

編集
$ cp -p file1.txt file2.txt

タイムスタンプやパーミッションを保持したまま file1.txtfile2.txt にコピーします。

まとめ

編集

cp コマンドは、ファイルやディレクトリをコピーするためのシンプルかつ強力なツールです。オプションを適切に使用することで、安全かつ効率的にコピー操作を行うことができます。本章で紹介した基本的なオプションを理解し、実際の操作に役立ててください。