スポンサーリンク

CP(1) FreeBSD 一般コマンドマニュアル CP(1)

名称

cp − ファイルをコピーする

書式

cp [

           −R [−H | −L | −P]] [−f | −i | −n] [−pv] source_file target_file

cp [
−R
[−H | −L | −P]] [−f | −i | −n] [−pv] source_file ... target_directory

解説

1 番目の書式の場合、 cpsource_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) を使ってください。

−f
コピー先にすでに同名のファイルが存在する場合、そのファイルのパー ミッションに関わらず、確認を求めずにそれを消去して新しくファイルを 作成します。( −f オプションより前の −i または −n オプションは無視さ れます。)

−i
すでに存在するファイルへの上書きを伴うコピーを実行する前に、上書き するかどうかの確認プロンプトを標準エラー出力へ出力するよう cp に指 示します。標準入力からの返答が文字 ‘y’ か ‘Y’ で始まっていればコ ピーが実行されます。 ( −i オプションより前の −f または −n オプショ ンは無視されます。)

−n
既存のファイルを上書きしません。 ( −n オプションより前の −f または −i オプションは無視されます。)

−p
各ファイルの次の属性パーミッションが許す範囲内で可能な限り保存して コピーするよう cp に指示します: 変更時刻・アクセス時刻・フラグ・ モード・ユーザ ID・グループ ID。

ユーザ ID やグループ ID が保存できない場合でも、エラーメッセージは 出力されず戻り値も変化しません。

コピー元ファイルに SETUID ビットが立っておりかつそのユーザ ID が保 存できない場合、SETUID ビットは保存されません。コピー元ファイルに SETGID ビットが立っておりかつそのグループIDが保存できない場 合、SETGID ビットは保存されません。コピー元のファイルに SETUID ビッ トと SETGID ビットが共に立っておりかつそのユーザ ID かグループ ID のいずれか一方でも保存できない場合、 −p オプションが指定されていな い限り、 SETUID ビットと SETGID ビットの両方が保存されません。

−v
cp
を冗長にし、コピーする時ファイルを表示させます。

すでに存在するコピー先ファイルについては、パーミッションが許せば内容は上 書きされますが、モード・ユーザ ID・グループ ID は変化しません。

2 番目の書式では、 source_file としてディレクトリが一つだけ指定されかつ −R オプションが指定されている場合を除き、 target_directory は存在していな ければなりません。

コピー先ファイルが存在しない場合、コピー元ファイルのモードにファイルモー ド生成マスク (umask, csh(1) を参照) を適用したものがコピー先ファイルの モードとして使用されます。コピー元ファイルの SETUID ビットが立っていて も、コピー元ファイルとコピー先ファイルの所有者が同一でない限り、それは落 とされます。コピー元ファイルの SETGID ビットが立っていても、コピー元ファ イルとコピー先ファイルが同一グループに属しかつコピーを行うユーザがそのグ ループに入っていない限りそれは落とされます。 SETUID ビットと SETGID ビッ トの両方が立っている場合、上記のすべての条件が満たされない限り、両方の ビットが落とされます。

ファイルの生成および上書きには、適切なパーミッションがなければなりませ ん。

−R フラグが指定されるとシンボリックリンクは追跡されませんが、そうでない限 りデフォルトでシンボリックリンクは常に追跡されます。 −H または −L フラグ ( −R フラグと併用) を用いると、シンボリックリンクの追跡を前述したように動 作させることができます。 −H, −L, −P オプションは、 −R オプションが指定さ れていなければ無視されます。また、これらのオプションは互いに打ち消し合 い、最後に指定されたものが有効になります。

cp が SIGINFO シグナルを受信した場合 (stty(1)status 引数を参照)、現在 の入力および出力のファイルと完了したパーセンテージが、標準エラー出力へ書 かれます。

診断

ユーティリティ cp は、成功すると 0 で、エラーがあった場合は >0 で終了しま す。

互換性

従来版の cp には −r オプションがありました。本実装でもこのオプションはサ ポートされていますが、特殊ファイル・シンボリックリンク・FIFO などを正しく コピーできないため、これを使用することは奨められません。

−v および −n は標準ではありませんし、スクリプト中での使用はお勧めしませ ん。

関連項目

mv(1), rcp(1), umask(2), fts(3), symlink(7)

規格

cp コマンドは、 IEEE Std 1003.2 (‘‘POSIX.2’’) 互換を想定しています。

歴史

cp コマンドは Version 1 AT&T UNIX から登場しました。

FreeBSD 10.0 February 23, 2005 FreeBSD 10.0

スポンサーリンク