EN JA
CP(1)
CP(1) FreeBSD General Commands Manual CP(1)

名称

cpファイルをコピーする

書式

cp [ -R [ -H | -L | -P]][ -f | -i | -n][ -alpvx] source_file target_file

cp [ -R [ -H | -L | -P]][ -f | -i | -n][ -alpvx] source_file ... target_directory

解説

最初の書式の形式で、 cp ユーティリティは、 source_file の内容を target_file コピーします。 2 番目の書式の形式で、指定された source_file のそれぞれの内容は、宛先 target_directory にコピーされます。ファイル自体の名前は、変更されません。 cp が、それ自体にファイルをコピーする試みを検出するなら、コピーは、失敗します。

次のオプションが利用可能です:

-H
-R オプションが指定されるなら、コマンド行のシンボリックリンクをたどります。 (ツリーの横断で遭遇したシンボリックリンクは、たどりません。)
-L
-R オプションが指定されるなら、すべてのシンボリックリンクがたどられます。
-P
-R オプションが指定されるなら、シンボリックリンクは、たどれらません。これは、デフォルトです。
-R
source_file がディレクトリを指定するなら、 cp は、その時点で結び付けられているディレクトリとすべてのサブツリーをコピーします。 source_file/ で終っているなら、ディレクトリ自体ではなくディレクトリの内容がコピーされます。また、このオプションによってシンボリックリンクは、間接的でなく、コピーされ、 cp は、特殊ファイルを通常のファイルとしてコピーするのではなく特殊ファイルを作成します。作成されるディレクトリには、プロセスの umask によって修正されない、対応する元のディレクトリと同じモードがあります。

cp は、個別のファイルとしてハードリンクされたファイルをコピーすることに注意してください。ハードリンクを保存する必要があるなら、代わりに tar(1), cpio(1) または pax(1) を使用することを考慮してください。

-a
アーカイブモード。 -RpP と同じです。
-f
それぞれの既存の宛先のパス名について、それを削除して、そのパーミッションにかかわらず確認のためのプロンプトを出さずに、新しいファイルを作成します。 ( -f オプションは、それ以前の -i または -n オプションを上書きします。)
-i
cp は、既存のファイルに上書きするファイルをコピーする前に、標準エラー出力にプロンプトを出します。標準入力からの応答が文字‘ y’または‘ Y’から始まるなら、ファイルコピーが試みられます。 ( -i オプションは、それ以前の -f または -n オプションを上書きします。)
-l
コピーの代わりに階層構造の通常ファイルへのハードリンクを作成します。
-n
既存のファイルに上書きしません。 ( -n オプションは、それ以前の -f または -i オプションを上書きします。)
-p
cp は、コピーにおいて各ソースファイルの次の属性を保存します: パーミッションによって許可される、更新時刻、アクセス時刻、ファイルフラグ、ファイルモード、ACL、ユーザ ID、とグループ ID。

ユーザ ID とグループ ID を保存することができないなら、エラーメッセージは、表示されず、終了値は、変更されません。

ソースファイルに、セットユーザ ID (set-user-ID) ビットがあり、ユーザ ID が保存することができないなら、セットユーザ ID (set-user-ID) ビットは、コピーのパーミッションに保存されません。ソースファイルに、セットグループ ID (set-group-ID) ビットがあり、グループ ID が保存することができないなら、セットグループ ID (set-group-ID) ビットは、コピーのパーミッションに保存されません。ソースファイルに、セットユーザ ID (set-user-ID) とセットグループ ID (set-group-ID) ビットの両方があり、ユーザ ID またはグループ ID のいずれも、保存することができないなら、セットユーザ ID (set-user-ID) もセットグループ ID (set-group-ID) ビットもコピーのパーミッションに保存されません。

-v
cp は、それらがコピーされるとともに、ファイルを表示して、冗長にします。
-x
ファイルシステムのマウントポイントは、たどられません。

既に存在する宛先の各ファイルについては、パーミッションが許されるなら、その内容は、上書きされます。 -p オプションが指定されていない限り、モード、ユーザ ID、グループ ID は、変化しません。

2 番目の書式の形式で、ディレクトリであり、 -R フラグが指定されている、1 つの指定された source_file のみある場合を除き、 target_directory は、存在していなければなりません。

宛先ファイルが存在しないなら、ソースファイルのモードは、ファイルモード生成マスク ( umask, csh(1) 参照) によって修正されるように使用されます。ソースファイルに、セットユーザ ID (set-user-ID) ビットがあるなら、そしてソースファイルと宛先ファイルの両方が同じユーザによって所有されていないなら、そのビットは、削除されます。ソースファイルにセットグループ ID (set-group-ID) ビットがあるなら、そしてソースファイルと宛先ファイルの両方が同じグループで、ユーザがそのグループのメンバである場合を除いて、そのビットは、削除されます。セットユーザ ID (set-user-ID) とセットグループ ID (set-group-ID) ビットの両方が設定されているなら、上記の条件は、すべて満たされなければならないか、または、両方のビットは、削除されます。

適切なパーミッションが、ファイル作成または上書きのために要求されます。

-R フラグが設定されていないなら、シンボリックリンクは、常にたどられます、そうでなければ、デフォルトで、シンボリックリンクは、たどられません。 -R フラグとともに) -H または -L フラグによって、シンボリックリンクは、上に記述されるように、たどられます。 -H, -L-P オプションは、 -R オプションが指定されないなら、無視されます。さらに、これらのオプションは、互いを上書きされ、コマンドのアクションは、指定された最後のものによって決定されます。

cpSIGINFO ( stty(1) のための status 引数を参照) シグナルを受信するなら、現在の入力と出力ファイルと完了しているパーセンテージが、標準出力に書き込まれます。

終了ステータス

The cp utility exits 0 on success, and >0 if an error occurs.

使用例

指定された bar にファイル foo のコピーを作成します:

$ cp foo bar

/tmp ディレクトリに一群のファイルをコピーします:

$ cp *.txt /tmp

/tmp ディレクトリにディレクトリ junk と (あらゆるサブディレクトリを含んで) その内容のすべてをコピーします:

$ cp -R junk /tmp

互換性

cp の歴史的なバージョンには、 -r オプションがありました。この実装でも、そのオプションをサポートしてますが、振る舞いは、歴史的な FreeBSD の振る舞いと異なっています。このオプションの使用は、振る舞いが実装に依存しているので、強くお勧めできません。 FreeBSD では、 -r は、 -RL と同義語で、他のフラグで変更されないなら、同じように動作します。 -r の歴史的な実装は、階層構造を再作成している間に特別なファイルを通常のファイルのようにコピーするのと異なります。

-v-n オプションは、標準ではなく、スクリプトでの使用は、推奨されません。

規格

cp コマンドは、 IEEE Std 1003.2 (“POSIX.2”) 互換のはずです。

歴史

cp コマンドは、 Version 1 AT&T UNIX で登場しました。
March 15, 2013 FreeBSD