UNIXハンドブック/cp
表示
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
注意点
[編集]- 既存ファイルの上書き
- デフォルトでは、
cp
コマンドは確認を求めずにコピー先のファイルを上書きします。安全のために-i
オプションを使用することが推奨されます。
- デフォルトでは、
- ディレクトリのコピー
- ディレクトリをコピーする場合は
-R
オプションを必ず指定してください。指定しないとエラーになります。
- ディレクトリをコピーする場合は
- 属性の保持
-p
オプションを使用すると、元のファイルのタイムスタンプやパーミッションをコピー先に引き継ぐことができます。
- シンボリックリンクの扱い
- デフォルトでは、
cp
はシンボリックリンク自体をコピーします。リンク先の内容をコピーする場合は追加のオプションが必要ですが、本章ではPOSIXに準拠するため詳細は割愛します。
- デフォルトでは、
例題
[編集]例1: 単一ファイルをコピー
[編集]$ cp file1.txt backup.txt
file1.txt
を backup.txt
としてコピーします。
例2: ディレクトリ全体をコピー
[編集]$ cp -R project/ project_backup/
project
ディレクトリの内容を project_backup
にコピーします。
例3: 属性を保持してコピー
[編集]$ cp -p file1.txt file2.txt
タイムスタンプやパーミッションを保持したまま file1.txt
を file2.txt
にコピーします。
まとめ
[編集]cp
コマンドは、ファイルやディレクトリをコピーするためのシンプルかつ強力なツールです。オプションを適切に使用することで、安全かつ効率的にコピー操作を行うことができます。本章で紹介した基本的なオプションを理解し、実際の操作に役立ててください。