| cp | |
|---|---|
cpコマンドの使用例 | |
| 原作者 | AT&Tベル研究所 |
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| 初回リリース | 1971年11月3日 (1971年11月3日) |
| 書かれた | プラン9:C |
| オペレーティング·システム | Unix、Unixライク、Plan 9、Inferno、KolibriOS |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | coreutils : GPLv3プラン 9: MIT ライセンス |
cpファイルとディレクトリをコピーするためのシェルコマンドです。
ユーザーが対象ファイルへの書き込み権限を持っている場合、コマンドは対象ファイルを更新モードで開き、その内容をコピーします。これにより、デフォルトの権限で新しいファイルを作成するのではなく、ファイルのinodeが保持されます。
このコマンドはバージョン1 Unix [ 1 ]の一部であり、POSIXで規定されています。GNUによる実装では、POSIX仕様を超える多くの追加オプションが用意されています。[ 2 ]このコマンドはGNU Core Utilities [ 3 ]にバンドルされており、 EFIシェルでも利用できます。[ 4 ]
-f(強制) – 書き込み操作のために開けない場合、各ターゲットファイルを削除することを指定します。削除はコピーの前に行われます。-H(逆参照) –シンボリックリンクをたどり、宛先にターゲットへのリンクではなくターゲットファイルが含まれるようにします。-i(対話型) – ソースファイルと衝突する各ターゲットファイルを上書きするようにユーザーに促す-n(上書きなし) – ファイルの上書きを防止します-p(保存) – 最終変更時刻、最終アクセス時刻、所有権、ファイル権限など、各ソースファイルのメタデータを宛先に保存します。-Rまたは-r(再帰的) – ディレクトリを再帰的にコピーするこのコマンドには、コマンドライン引数から推測されるように、3つの主要な動作モードがあります。[ 5 ]
既存のファイルへのパスの後に既存のディレクトリを参照しないパスが続く場合、最初のパスのファイルが 2 番目のパスにコピーされます。
cp [-fHip][--] ソースファイル ターゲットファイル
既存のファイルへの 1 つ以上のパスの後に既存のディレクトリへのパスが続く場合、ファイルはディレクトリにコピーされます。
cp [-fHip] [--] ソースファイル... ターゲットディレクトリ
recurse コマンドラインオプション(通常-r、既存のディレクトリへのパスと2番目のパス)を使用すると、ディレクトリ内のファイルが2番目のパスにコピーされます。2番目のパスが何も参照していない場合、ソースディレクトリがそのパスにコピーされます。2番目のパスが既存のディレクトリを参照している場合、ソースディレクトリはサブディレクトリとしてコピー先ディレクトリにコピーされます。
cp -r|-R [-fHip] [--] ソースディレクトリ... ターゲットディレクトリ
これはファイルprog.cをファイルprog.bakにコピーします。prog.bakがまだ存在しない場合は作成します。存在する場合は、その内容が置き換えられます。
cp prog.c prog.bak
これにより、ファイルjonesおよびsmith が既存のディレクトリclientsにコピーされます。
CPジョーンズスミスのクライアント
このコマンドは、ファイルsmithをsmith.jrというファイルにコピーします。現在の日付とタイムスタンプを持つファイルを作成する代わりに、元のファイルから日付と時刻をコピーします。また、コピーには、アクセス制御保護などの他のメタデータも元のファイルから取得されます。
cp -p スミス スミス.jr
これにより、ディレクトリclientsとその中のファイル、サブディレクトリ、およびそれらのサブディレクトリ内のファイルが、新しいディレクトリcustomers/clientsに再帰的にコピーされます。
cp -R クライアント 顧客
一部の実装では、ディレクトリパスの終端に応じて再帰モードでの動作が異なります。GNUcp -R clients/ customers実装では を使用すると上記と同様に動作します。ただし、BSD実装では、clientsディレクトリ自体ではなく、clientsディレクトリの内容をコピーします。ソースディレクトリのパスが . または .. (末尾のスラッシュの有無は問いません)で終わる場合、GNU実装とBSD実装の両方で同じ動作になります。