名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項
上記「形式」の項で示す第 1 の形式では 、source_file および target_file はディレクトリファイルではありません。また、両者は同じ名前ではありません。cp ユーティリティは、source_file が示すファイルの内容を、target_file が示す宛先パスにコピーします。target_file がすでに存在していると、cp はその内容を上書きしますが 、ファイルのモード (さらに ACL が有効な場合は ACL)、所有者、およびグループは変更しません。target_file の最新更新時刻および source_file の最新アクセス時刻の値は、コピーが行われた時刻に設定されます。target_file が存在しなければ、cp は target_file という名のファイルを作成します。このファイルのモードは source_file と同じになります。ただしコマンドを発行したユーザーがスーパーユーザーでない限り、スティッキビットは設定されません。この場合、target_file の所有者とグループは (target_file を作成した) ユーザーのものと同じになります。ただし、新たに作成されたファイル (target_file) を含むディレクトリに setgid ビットがセットされている場合を除きます。このディレクトリに setgid ビットがセットされている場合、新たに作成されたファイル (target_file) のグループは、そのファイルを作成したユーザーのグループではなく、そのファイルを含むディレクトリのグループになります。target_file が別のファイルへのリンクである場合、リンク先のファイルに対して source_file の内容を上書きします。target_file からのリンクはそのまま残ります。
第 2 の形式の cp は、source_file が示す 1 つ以上のファイルを、target が示すディレクトリにコピーします。個々の source_file に対して、同じモード (さらに ACL が有効な場合は同じ ACL ) の新たなファイルが target 中に作成されます。所有者とグループは、このコマンドを 発行したユーザーのものが用いられます。source_file がディレクトリの場合 、target が存在しない場合、および target がディレクトリでない場合は、いずれもエラーとなります。
第 3 の形式の cp は 、source_dir が示す 1 つ以上のディレクトリを、target が示すディレクトリにコピーします。-r または -R のどちらかを指定しなければなりません。個々の source_dir に関して 、cp はその中のすべてのファイルとサブディレクトリをコピーします。
以下のオプションは 、/usr/bin/cp と /usr/xpg4/bin/cp で指定できます。
リンク解除。宛先ファイルのファイル記述子が得られない場合、宛先ファイルのリンクを解除して処理を続けようとします。
対話型。宛先ファイルとして指定した target がすでに存在している場合、上書きしてもよいかどうかを問い合わせる確認メッセージを出力します。そのメッセージに対して y と応答すると、コピー処理が続行されます。他の文字で応答すると上書きは実行されません。
再帰。cp はそのディレクトリ全体、つまりディレクトリ内の全ファイルをコピーするだけでなく、ディレクトリ にあるすべてのサブディレクトリとそのサブディレクトリ中の全ファイルも target にコピーします。
パイプが読まれるのではなく複写される、という点を除いて -r と同じです。
拡張属性を保持します。cp は、ファイルのデータとともに、すべてのソースファイルの拡張属性を宛先ファイルにコピーしようとします。
以下のオプションは /usr/bin/cp でのみ指定できます。
保持。cp は source_file で示したファイルの内容をコピーするだけでなく、出力側ファイルの 所有者とグループの ID、アクセス権モード、更新時刻とアクセス時刻、および、適用可能であれば ACL と拡張属性をそのまま設定します。ACL をサポートしていないファイルシステムに ACL をコピーすると、このコマンドは、失敗する可能性があります。このコマンドは、拡張属性、更新時刻およびアクセス時刻、またはアクセス権モードを設定することができない場合には、失敗しません。また、所有者とグループの ID を設定できない場合も 、cp は失敗しないで、出力側ファイルの S_ISUID と S_ISGID ビット をクリアします。cp は、これらのビットをクリアできない場合には 、標準エラー出力に診断メッセージを表示し、ゼロ以外の終了ステータスを返します。
所有者とグループの ID 、アクセス権モード、更新時刻およびアクセス時刻を保存するためには 、ユーザーが、適切なファイルのアクセス権を持っている必要があります。つまり、スーパーユーザーであることや、目的のファイルと同じ所有者 ID であることが必要です。
以下のオプションは /usr/xpg4/bin/cp でのみ指定できます。
保持。cp は source_file で示したファイルの内容をコピーするだけでなく、出力側ファイルの 所有者とグループの ID、アクセス権モード、更新時刻とアクセス時刻、および、適用可能であれば ACL と拡張属性をそのまま設定します。ACL または拡張属性をサポートしていないファイルシステムに ACL をコピーすると、このコマンドは、失敗する可能性があります。更新時刻とアクセス時刻、またはアクセス権モードを設定できない場合 、cp は 標準エラー出力に診断メッセージを表示し、ゼロ以外の終了ステータスを返します。所有者とグループの ID を設定できない場合は、cp は失敗しないで、出力側ファイルの S_ISUID と S_ISGID ビット をクリアします。cp はこれらのビットがクリアできなければ 、標準エラー出力に診断メッセージを表示し、ゼロ以外の終了ステータスを返します。
所有者とグループの ID 、アクセス権モード、更新時刻およびアクセス時刻を保存するためには、ユーザーが、適切なファイルのアクセス権を持っている必要があります。つまり、スーパーユーザーであることや、目的のファイルと同じ所有者 ID であることが必要です。
以下のオペランドを指定できます。
コピーされる通常ファイルのパス名
コピーされるディレクトリのパス名
1 つのファイルをコピーする際に出力として用いられるファイルのパス名。既存のファイルでも存在していないファイルでもよい
コピーしたファイルを出力するディレクトリのパス名
ファイルが 2 ギガバイト ( 231 バイト) 以上ある場合の cp の動作については 、largefile(5) を参照してください。
example% cp goodies goodies.old example% ls goodies* goodies goodies.old |
example% cp ~/src/* /tmp |
example% ls ~/bkup /usr/example/fred/bkup not found example% cp -r ~/src ~/bkup example% ls -R ~/bkup x.c y.c z.sh example% cp -r ~/src ~/bkup example% ls -R ~/bkup src x.c y.c z.sh src: x.c y.c z.s |
cp の実行に影響を与える環境変数 LC_COLLATE
、LC_CTYPE
、LC_MESSAGES
、NLSPATH
についての詳細は 、environ(5) を参照してください。
次の属性については attributes(5) のマニュアルページを参照してください。
chmod(1), chown(1), setfacl(1), utime(2), attributes(5), environ(5), fsattr(5), largefile(5), XPG4(5)
ソースファイルのアクセス権モードは、コピー時にそのまま保存されます。
ユーザーはハイフンを 2 つ連続して記述 (–) することにより 、コマンド行オプションの終わりを明確に指定することができます。この方法を用いれば、ハイフンで始まるファイル名を filename 引数として指定したとき、それがファイル名であることを cp に伝えることができます。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項