Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

cp(1)

名前

cp - copy files

形式

/usr/bin/cp [-Pfipz@/] source_file target_file
/usr/bin/cp [-Pfipz@/] source_file... target
/usr/bin/cp -r [-H | -L | -P] [-fipz@/] source_dir... target
/usr/bin/cp -R [-H | -L | -P] [-fipz@/] source_dir... target
/usr/xpg4/bin/cp [-Pfipz@/] source_file target_file
/usr/xpg4/bin/cp [-Pfipz@/] source_file... target
/usr/xpg4/bin/cp -r [-H | -L | -P] [-fipz@/] source_dir... target
/usr/xpg4/bin/cp -R [-H | -L | -P] [-fipz@/] source_dir... target

説明

In the first synopsis form, neither source_file nor target_file are directory files, nor can they have the same name.The cp utility copies the contents of source_file to the destination path named by target_file.target_file がすでに存在していると、cp はその内容を上書きしますが、ファイルのモード (さらに ACL が有効な場合は ACL)、所有者、およびグループは変更しません。The last modification time of target_file and the last access time of source_file are set to the time the copy was made.If target_file does not exist, cp creates a new file named target_file that has the same mode as source_file except that the sticky bit is not set unless the user has the {PRIV_SYS_CONFIG} privilege.この場合、target_file の所有者とグループは (target_file を作成した) ユーザーのものと同じになります。ただし、新たに作成されたファイル (target_file) を含むディレクトリに setgid ビットがセットされている場合を除きます。このディレクトリに setgid ビットがセットされている場合、新たに作成されたファイル (target_file) のグループは、そのファイルを作成したユーザーのグループではなく、そのファイルを含むディレクトリのグループになります。target_file が別のファイルへのリンクである場合、リンク先のファイルに対して source_file の内容を上書きします。target_file からのリンクはそのまま残ります。

第 2 の形式の cp は、source_file が示す 1 つ以上のファイルを、target が示すディレクトリにコピーします。source_file がディレクトリの場合 、target が存在しない場合、および target がディレクトリでない場合は、いずれもエラーとなります。

第 3 または第 4 の形式の cp は、source_dir が示す 1 つ以上のディレクトリを、target が示すディレクトリにコピーします。–r または –R のどちらかを指定しなければなりません。個々の source_dir に関して、cp はその中のすべてのファイルとサブディレクトリをコピーします。

オプション

The following options are supported for both /usr/bin/cp and /usr/xpg4/bin/cp:

–f

Unlink.宛先ファイルのファイル記述子が得られない場合、宛先ファイルのリンクを解除して処理を続けようとします。

–H

処理は、source_file オペランドとして指定したシンボリックリンクが参照するファイルの種類と内容に基づいて行われます。

source_file オペランドがシンボリックリンクである場合、source_file オペランドのシンボリックリンクが参照するファイルがコピーされます。ファイル階層の検索中に検出された他のすべてのシンボリックリンクは維持されます。

–i

対話型。cp では、コピーが既存の target を上書きする際に、確認を求めます。これは、入力が端末から送られているかどうかに関係なく実行されます。確認のプロンプトでエラーが発生した場合は、ユーザーによる否定応答と同等です。肯定応答を返すと、コピー処理は続行されます。Any other answer prevents cp from overwriting target.

–L

処理は、source_file オペランドとして指定したシンボリックリンク、あるいは、ファイル階層の検索中に出会ったシンボリックリンクが参照するファイルの種類と内容に基づいて行われます。

シンボリックリンクが参照するファイルをコピーします。ファイル階層の検索中に検出されたシンボリックリンクは維持されません。

–p

Preserve.cp ユーティリティーは、source_file の内容を複製するだけではなく、その ACL、アクセス日時と更新日時、拡張属性、拡張システム属性、ファイルモード、および所有者 ID とグループ ID を保持しようとします。

cp がアクセス日時と更新日時、拡張属性、またはファイルモードを保持できない場合、cp はそれを失敗とは見なしません。cp が所有者 ID とグループ ID を保持できない場合、コピーは失敗しませんが、cp はメッセージを表示せずにターゲットのファイルモードから S_ISUID および S_ISGID ビットをクリアします。cp がこれらのビットをクリアできない場合、コピーは失敗します。cp が ACL または拡張システム属性を保持できない場合、コピーは失敗します。If the copy fails, then a diagnostic message is written to stderr and (after processing any remaining operands) cp exits with a non-zero exit status.

–P

Takes actions on any symbolic link specified as a source_file operand or any symbolic link encountered during traversal of a file hierarchy.

Copies symbolic links.ファイル階層の検索中に検出されたシンボリックリンクが保存されます。

–r

Recursive. cp copies the directory and all its files, including any subdirectories and their files to target.–H–L、または –P のいずれのオプションも指定しない限り、–L オプションがデフォルトのモードとして使用されます。

–R

パイプが読まれるのではなく複写される、という点を除いて –r と同じです。

–z

高速コピー。cp は、ソースおよび宛先ファイルに対して reflink を実行します。詳細は、reflink(3C) のマニュアルページを参照してください。

–@

拡張属性を保持します。cp は、ファイルのデータとともに、すべてのソースファイルの拡張属性を宛先ファイルにコピーしようとします。

–/

拡張属性と拡張システム属性を保持します。cp ユーティリティーは、ファイルのデータに加え、拡張属性と拡張システム属性を各ソースファイルからコピーし、拡張属性に関連付けられた拡張システム属性を宛先ファイルにコピーしようとします。If cp is unable to copy extended attributes or extended system attributes, then a diagnostic message is written to stderr and (after processing any remaining operands) exits with a non-zero exit status.

Specifying more than one of the mutually-exclusive options –H, –L, and –P is not considered an error.最後に指定したオプションが cp の動作を決定します。

/usr/bin/cp

–p オプションが –@ オプションまたは –/ オプションとともに指定されている場合、/usr/bin/cp の動作は次のようになります。

  • –p–@ の両方が任意の順序で指定されている場合、拡張属性をコピーできないとコピーは失敗します。

  • –p–/ の両方が任意の順序で指定されている場合、拡張システム属性をコピーできないとコピーは失敗します。

/usr/xpg4/bin/cp

If the –p option is specified with either the –@ option or the –/ option, /usr/xpg4/bin/cp behaves as follows:

  • –p–@ の両方が指定されている場合は、最後に指定されたオプションによって、拡張属性を保持できないとコピーが失敗するかどうかが決まります。

  • –p–/ の両方が指定されている場合は、最後に指定されたオプションによって、拡張システム属性を保持できないとコピーが失敗するかどうかが決まります。

オペランド

次のオペランドがサポートされています。

source_file

コピーされる通常ファイルのパス名

source_dir

コピーされるディレクトリのパス名

target_file

1 つのファイルをコピーする際に出力として用いられるファイルのパス名。既存のファイルでも存在していないファイルでもよい

target

コピーしたファイルを出力するディレクトリのパス名

使用例 1 1 つのファイルをコピーする

次の例は、1 つのファイルをコピーします。

example% cp goodies goodies.old

example% ls goodies*
goodies goodies.old
使用例 2 一群のファイルをコピーする

次の例は、一群のファイルを目的のディレクトリにコピーします。

example% cp ~/src/* /tmp
使用例 3 あるディレクトリをコピーする

次の例は、あるディレクトリを、最初は新しいディレクトリにコピーして、次に既存のディレクトリにコピーします。

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
使用例 4 拡張ファイルシステム属性をコピーする

次の例では、拡張ファイルシステム属性をコピーします。

$ ls -/ c file1
-rw-r--r--   1 foo   staff          0 Oct 29 20:04 file1
                {AH-----m--}

$ cp -/ file1 file2
$ ls -/c file2
-rw-r--r--   1 foo  staff          0 Oct 29 20:17 file2
                {AH-----m--}
使用例 5 拡張システム属性のコピーに失敗する

次に、拡張システム属性のコピーに失敗する例を示します。

$ ls -/c file1
-rw-r--r--   1 foo    staff          0 Oct 29 20:04 file1
                {AH-----m--}

$ cp -/ file1 /tmp
cp: Failed to copy extended system attributes from file1 to /tmp/file1

$ ls -/c /tmp/file1
-rw-r--r--   1 foo    staff          0 Oct 29 20:09 /tmp/file1
                {}

環境変数

See environ(7) for descriptions of the following environment variables that affect the execution of cp: LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH.

肯定応答は、ユーザーのロケールの LC_MESSAGES カテゴリの yesexpr キーワードで定義されている拡張正規表現を使用して処理されます。LC_COLLATE カテゴリに指定されているロケールは、yesexpr に定義されている式に使用される範囲、同等クラス、および複数文字照合要素の動作を定義します。LC_CTYPE に指定されているロケールは、テキストデータのバイト列を文字として解釈するロケールや、yesexpr に定義されている式に使用される文字クラスの動作を定義します。locale(7) を参照してください。

終了ステータス

次の終了ステータスが返されます。

0

すべてのファイルを正常にコピーしました。

> 0

エラーが発生しました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

/usr/bin/cp

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実

/usr/xpg4/bin/cp

属性タイプ
属性値
使用条件
system/xopen/xcu4
CSI
有効
インタフェースの安定性
確実

関連項目

chmod(1), chown(1), utime(2), fgetattr(3C), attributes(7), environ(7), fsattr(7), locale(7), privileges(7), standards(7)

ソースファイルのアクセス権モードは、コピー時にそのまま保存されます。

-- によって、ユーザーはコマンド行オプションの終端を明示的にマーク付けできるので、cp で始まるファイル名引数を認識できるようになります。