ファイルやディレクトリをコピーする
file
をそれぞれ (同じ名前のまま) そのディレクトリにコピーする。
2 つのファイルだけが指定された場合、
1 つ目のファイルを 2 つ目のファイルにコピーする。
最後の引き数がディレクトリでなく、
2 つ以上のオプションでない引き数が与えられた場合はエラーになる。
(したがって `cp -r /a /b' とすると、 /b が存在する場合は /a を /b/a に、
/a/x を /b/a/x にコピーする。しかしコピー前に /b がない場合は
/a を /b に、/a/x を /b/x にコピーする。)
作られたファイルとディレクトリのモードは、
まずオリジナルファイルのモードと同じものにされ、
0777 との AND をとられ、
ユーザーの umask のビットが引かれる
(-p オプションが指定された場合を除く)。
(しかし再帰コピーの最中には、新しく作られたディレクトリの最終モードに、
一時的に S_IRWXU (0700) が OR される。
こればプロセスがこれらの新しく作られたディレクトリの
読み出し・書き込み・検索のプロセスを可能にするためである。)
ファイルをそれ自身にコピーしようとした場合、
(エラーメッセージを出す以外は) 何もしない。
既存のファイルにコピーする場合、
コピー先のファイルは `open(path, O_WRONLY | O_TRUNC)'
で開かれる。
新規ファイルにコピーする場合、
新規ファイルは `open(path, O_WRONLY | O_CREAT, mode)'
で作成される。
コピー先のファイルが存在し、かつ -f オプションが与えられている場合に
この形式でのファイルのオープンに失敗すると、
cp
は既存のファイルの削除 (もしくはアンリンク) を試みる。
そして、削除に成功した場合は新規ファイルへのコピーとして
命令を続行する。
再帰的にコピーする場合、
デフォルトでは cp はシンボリックリンクを辿るだけである
(-dHL オプションを参照)。
-f
-H
-i
-L
-p
-R
-r
コピー元
と
コピー先
が同一で、通常のファイルを参照している場合には、
cp
はバックアップファイルを作る。
バックアップファイル名には通常または番号付きの拡張子が、
通常の場合と同じように付く。
これは、既に存在するファイルを変更前に
単純にバックアップしたい場合に有用である。
-a, --archive
-d, --no-dereference
-f, --force
-i, --interactive
-l, --link
-L, --dereference
-p, --preserve
-P, --parents
cp --parents a/b/c existing_dir
-r
--remove-destination
-R, --recursive
--sparse= WHEN
WHEN
の値は下のいずれかである:
auto
always
never
--strip-trailing-slashes
-s, --symbolic-link
--target-directory= DIR
-u, --update
-v, --verbose
-x, --one-file-system
-b, --backup[= METHOD ]
-S SUFFIX , --suffix= SUFFIX
SUFFIX
をバックアップファイルそれぞれに付け加える。
このオプションが指定されていない場合、環境変数
SIMPLE_BACKUP_SUFFIX
に設定されている値が使われる。
SIMPLE_BACKUP_SUFFIX
が設定されていない場合の標準値は `~' である。
-V METHOD , --version-control= METHOD
METHOD
には、`numbered' (または `t')、`existing' (または `nil')、
`never' (または `simple') を指定できる。
このオプションが指定されていない場合、環境変数
VERSION_CONTROL
の値が使われる。
VERSION_CONTROL
が設定されていない場合の標準値は `existing' である。
このオプションは Emacs 変数の `version-control' に対応している。
有効な
METHOD
は (他と重複しない短縮形が使える):
t , numbered
nil , existing
never , simple
--help
--version
--