CP(1L)

名前
cp - ファイルをコピーする。

書式
cp [options] source dest
cp [options] source... directory
Options:
[-abdfilprsuvxPR] [-S backup-suffix] [-V {numbered,existing,simple}] [--backup] [--no-dereference] [--force] [--interactive] [--one-file-system] [--preserve] [--recursive] [--update] [--verbose] [--suffix=backup-suffix] [--version-control={numbered,existing,simple}] [--archive] [--parents] [--link] [--symbolic-link] [--help] [--version]

説明
このマニュアルページは GNU バージョンの cp について書いている。最後の引数がすでに存在するディレクトリならば、 cp はそのディレクトリに指定したファイルを同じ名前でコピーする。 しかし２つのファイルを指定した場合は、最初のファイルを２つ目の ファイルに上書きする。２つ以上のファイルを指定したのに、最後の引数 がディレクトリでないとエラーとなる。デフォルトではディレクトリの コピーはしない。

  オプション

-a, --archive
    元のファイルの校正とアトリビュートをなるべく保ったまま保存する。 -dpR と同じ。

-b, --backup
    上書きされたり、削除されることになるファイルのバックアップを作る。

-d, --no-dereference
    シンボリックリンクをコピーするときは、シンボリックリンクが指している ファイルをコピーするのでなく、シンボリック自体をコピーする。また、 ハードリンクされたもの同士をコピーする場合は、それら同士はコピー先 でもハードリンクされたままになる。

-f, --force
    コピー先のファイルがあればそれを削除してコピーする。

-i, --interactive
    上書きされるファイルがあれば可否を問い合わせてくる。

-l, --link
    コピーのかわりにハードリンクを作る(ただしディレクトリ以外)

-P, --parents
    指定されたコピー元のディレクトリを付けてコピーする。 最後の引数はすでに存在するディレクトリでなければならない。 たとえば、 `cp --parents a/b/c existing_dir' というコマンドは a/b/c というファイルを existing_dir/a/b/c というファイルに(間のディレクトリもなければ作って)コピーする。

-p, --preserve
    元ファイルのオーナー、グループ、パーミッション、タイムスタンプを保持する。

-r  ディレクトリを再帰的にコピーするが、その際、ディレクトリ以外は 全てファイルとしてコピーされる。

-s, --symbolic-link
    ディレクトリ以外のファイルをコピーするかわりにシンボリック リンクを作る。シンボリックリンクファイルをカレントディレクトリ に作る場合を除き、コピー元ファイル名は絶対パス( '/'で始める ) でなければならない。このオプションを付けるとシンボリックリンク をサポートしていないシステムではエラーメッセージを出す。

-u, --update
    すでに存在するコピー先ファイル(ディレクトリを除く)のタイムスタンプ が同じか新しいときはコピーしない。

-v, --verbose
    コピーするまえにそのファイル名を表示する。

-x, --one-file-system
    コピーする際、違うファイルシステムのサブディレクトリはコピーしない。

-R, --recursive
    ディレクトリを再帰的にコピーする。

--help
    標準出力に使い方を表示する。

--version
    標準出力にバージョン情報を表示する。

-S, --suffix backup-suffix
    バックアップファイルを作る際の添字は環境変数 SIMPLE_BACKUP_SUFFIX を参照するが、このオプションで指定したものが優先する。 どちらもない時は Emacs のように '~' となる。

-V, --version-control {numbered,existing,simple}
    バックアップ方法は環境変数 VERSION_CONTROL を参照するが、このオプションで指定したものが優先する。 VERSION_CONTROL 、このオプションともになければ、デフォルトのバックアップ方法は
     `existing' である。環境変数 VERSION_CONTROL の中身とこのオプションの引数は、GNU Emacs の `version-control' に 似ている(あちらのほうがより細かく設定できることに気づくだろう)。 使える値は以下(区別がつけば省略形が使える)：

    `t' or `numbered'
        常に(添字に)数字を使ってバックアップを作る。

    `nil' or `existing'
        すでに(添字に)数字を使ったバックアップファイルがあれば 数字を使ってバックアップファイルを作る。それ以外のときは、 単純な(きまった添字の)バックアップを作る。

    `never' or `simple'
        常に単純な(きまった添字の)バックアップを作る。

訳注
以下にディレクトリのコピー例を添付する。
<<testdir に各種の file を作り、cp を各種 option 付きで実行した結果>>
(左から、パーミッション、ハードリンクの数、ファイル名)
---------------- begin ----------------------
testdir:
   drwxr-xr-x 2 directory/
   -rw-r--r-- 2 file
   -rw-r--r-- 2 hardlinkfile
   prw-r--r-- 2 hardlinkpipe|
   prw-r--r-- 2 pipe|
   lrwxrwxrwx 2 symlinkfile -> file
   lrwxrwxrwx 1 symlinkpipe -> pipe| testdir-R:
   drwxr-xr-x 2 directory/
   -rw-r--r-- 1 file
   -rw-r--r-- 1 hardlinkfile
   prw-r--r-- 1 hardlinkpipe|
   prw-r--r-- 1 pipe|
   -rw-r--r-- 1 symlinkfile
   prw-r--r-- 1 symlinkpipe| testdir-a:
   drwxr-xr-x 2 directory/
   -rw-r--r-- 2 file
   -rw-r--r-- 2 hardlinkfile
   prw-r--r-- 2 hardlinkpipe|
   prw-r--r-- 2 pipe|
   lrwxrwxrwx 1 symlinkfile -> file
   lrwxrwxrwx 1 symlinkpipe -> pipe| testdir-dR:
   drwxr-xr-x 2 directory/
   -rw-r--r-- 2 file
   -rw-r--r-- 2 hardlinkfile
   prw-r--r-- 2 hardlinkpipe|
   prw-r--r-- 2 pipe|
   lrwxrwxrwx 1 symlinkfile -> file
   lrwxrwxrwx 1 symlinkpipe -> pipe| testdir-dr:
   drwxr-xr-x 2 directory/
   -rw-r--r-- 2 file
   -rw-r--r-- 2 hardlinkfile
   -rw-r--r-- 2 hardlinkpipe
   -rw-r--r-- 2 pipe
   lrwxrwxrwx 1 symlinkfile -> file
   lrwxrwxrwx 1 symlinkpipe -> pipe testdir-r:
   drwxr-xr-x 2 directory/
   -rw-r--r-- 1 file
   -rw-r--r-- 1 hardlinkfile
   -rw-r--r-- 1 hardlinkpipe
   -rw-r--r-- 1 pipe
   -rw-r--r-- 1 symlinkfile
   -rw-r--r-- 1 symlinkpipe
----------------- end ------------------------