名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項
上記「形式」の項で示す第 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 が新たなファイルとなります。
第 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 と同じです。
以下のオプションは /usr/bin/cp でのみ指定できます。
保持。 cp は source_file で示したファイルの内容をコピーするだけでなく、出力側ファイルの 所有者とグループの ID、アクセス権モード、更新時刻およびアクセス時刻、さらに ACL が有効な場合は ACL の値として入力側ファイルの値をそのまま設定します。 ACL をサポートしていないファイルシステムに ACL をコピーすると、 このコマンドは、失敗する可能性があります。 このコマンドは、更新時刻およびアクセス時刻、またはアクセス権モードを設定することができない場合には、失敗しません。また、所有者とグループの ID を設定できない場合も、 cp は失敗しないで、出力側ファイルの S_ISUID と S_ISGID ビット をクリアします。 cp は、これらのビットをクリアできない場合には、 標準エラー出力に診断メッセージを表示し、ゼロ以外の終了ステータスを返します。
所有者とグループの ID 、アクセス権モード、更新時刻およびアクセス時刻を保存するためには、 ユーザーが、適切なファイルのアクセス権を持っている必要があります。 つまり、スーパーユーザーであることや、 目的のファイルと同じ所有者 ID であることが必要です。
以下のオプションは /usr/xpg4/bin/cp でのみ指定できます。
保持。 cp は source_file で示したファイルの内容をコピーするだけでなく、出力側ファイルの 所有者とグループの ID 、アクセス権モード、更新時刻およびアクセス時刻、さらに ACL が有効な場合は ACL の値として入力側ファイルの値をそのまま設定します。 ACL をサポートしていないファイルシステムに ACL をコピーすると、 このコマンドは、失敗する可能性があります。 更新時刻とアクセス時刻、またはアクセス権モードを設定できない場合、 cp は 標準エラー出力に診断メッセージを表示し、ゼロ以外の終了ステータスを返します。 所有者とグループの ID を設定できない場合は、 cp は失敗しないで、出力側ファイルの S_ISUID と S_ISGID ビット をクリアします。 cp はこれらのビットがクリアできなければ、 標準エラー出力に診断メッセージを表示し、ゼロ以外の終了ステータスを返します。
所有者とグループの ID 、アクセス権モード、更新時刻およびアクセス時刻を保存するためには、 ユーザーが、適切なファイルのアクセス権を持っている必要があります。 つまり、スーパーユーザーであることや、 目的のファイルと同じ所有者 ID であることが必要です。
以下のオペランドを指定できます。
コピーされる通常ファイルのパス名
コピーされるディレクトリのパス名
1 つのファイルをコピーする際に出力として用いられるファイルのパス名。 既存のファイルでも存在していないファイルでもよい
コピーしたファイルを出力するディレクトリのパス名
ファイルが 2 ギガバイト ( 231 バイト) 以上ある場合の cp の動作については、 largefile(5) を参照してください。
1 つのファイルをコピーする例です。
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.sh |
cp の実行に影響を与える環境変数 LC_COLLATE、 LC_CTYPE、 LC_MESSAGES、 NLSPATH についての詳細は、 environ(5) を参照してください。
次の属性については attributes(5) のマニュアルページを参照してください。
chmod(1), chown(1), setfacl(1), utime(2), attributes(5), environ(5), largefile(5), XPG4(5)
ソースファイルのアクセス権モードは、 コピー時にそのまま保存されます。
ユーザーはハイフンを 2 つ連続して記述 (--) することにより、 コマンド行オプションの終わりを明確に指定する ことができます。この方法を用いれば、ハイフンで始まるファイル名を filename 引数として指定したとき、それがファイル名であることを cp に伝えることができます。 -- と - の両方がコマンド行上に記述されている場合、 cp は 2 番目のハイフンはファイル名指定であると解釈します。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項