.\" Copyright (c) 1989, 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 .\" %FreeBSD: src/bin/cp/cp.1,v 1.11.2.2 1999/08/29 14:11:32 peter Exp % .\" .\" jpman %Id: cp.1,v 1.2 1997/03/26 15:42:56 horikawa Stab % .Dd April 18, 1994 .Dt CP 1 .Os BSD 4 .Sh 名称 .Nm cp .Nd ファイルをコピーする .Sh 書式 .Nm cp .Oo .Fl R .Op Fl H | Fl L | Fl P .Oc .Op Fl f | i .Op Fl p .Ar source_file target_file .br .Nm cp .Oo .Fl R .Op Fl H | Fl L | Fl P .Oc .Op Fl fip .Ar source_file ... target_directory .Sh 解説 1 番目の書式の場合、 .Nm は .Ar source_file の内容を .Ar target_file にコピーします。 2 番目の書式の場合、 .Ar source_file の各々が .Ar target_directory の中へコピーされます。このとき 名前は変更されません。 コピー先が元のファイル自身になるような 指定を .Nm が検出した場合、コピーは失敗します。 .Pp 以下のオプションが使用できます。 .Bl -tag -width flag .It Fl H .Fl R オプションが指定されている時、コマンド行で指定されたシンボリックリンク を追跡します。(木構造の検索中に見つかったシンボリックリンクは追跡 しません) .It Fl L .Fl R オプションが指定されている時、すべてのシンボリックリンクを追跡します。 .It Fl P .Fl R オプションが指定されている時、シンボリックリンクを一切追跡しません。 .It Fl R .Ar source_file としてディレクトリが指定された場合、 .Nm はそのディレクトリとそれ以下の 部分木を構成するすべてのファイルをコピーします。シンボリックリンクに ついては、それが指している先のファイルをコピーするのではなく シンボリックリンクのままコピーします。特殊ファイルについても 通常ファイルとしてではなく .Nm が特殊ファイルを生成することでコピーします。 作成されるディレクトリの属性はプロセスのumask値の 影響を受けず、対応するコピー元ディレクトリと同じ属性となります。 .It Fl f コピー先にすでに同名のファイルが存在する場合、そのファイルのパー ミッションに関わらず、確認を求めずにそれを消去して新しくファイル を作成します。( .Fl f オプションより前の .Fl i オプションは無視されます。) .It Fl i すでに存在するファイルへの上書きを伴うコピーを実行する前に、 上書きするかどうかの確認プロンプトを標準エラー出力へ出力するよう .Nm に指示します。標準入力からの返答が 文字 .Sq Li y か .Sq Li Y で始まっていればコピーが実行されます。 ( .Fl i オプションより前の .Fl f オプションは無視されます。) .It Fl p ファイルの変更時刻・アクセス時刻・フラグ・モード・ユーザID・グループID などを、パーミッションが許す範囲内で可能な限り保存してコピーするよう .Nm に指示します。 .Pp ユーザIDやグループIDが保存できない場合でも、エラーメッセージは出力されず 戻り値も変化しません。 .Pp コピー元ファイルにSETUIDビットが立っておりかつそのユーザIDが保存できない 場合、SETUIDビットは保存されません。コピー元ファイルにSETGIDビットが 立っておりかつそのグループIDが保存できない場合、SETGIDビットは保存されません。 コピー元のファイルにSETUIDビットとSETGIDビットが共に 立っておりかつそのユーザIDかグループIDのいずれか一方でも保存できない場合、 .Fl p オプションが指定されていない限り、 SETUIDビットとSETGIDビットの両方が保存されません。 .El .Pp すでに存在するコピー先ファイルについては、パーミッションが許せば 内容は上書きされますが、モード・ユーザID・グループIDは変化しません。 .Pp 2 番目の書式では、 .Ar source_file としてディレクトリが一つだけ指定されかつ .Fl R オプションが指定されている場合を除き、 .Ar target_directory は存在していなければなりません。 .Pp コピー先ファイルが存在しない場合、コピー元ファイルのモードに ファイルモード生成マスク .Pf ( Ic umask , .Xr csh 1 を参照 ) を適用したものがコピー先ファイルのモードとして使用されます。 コピー元ファイルのSETUIDビットが立っていても、コピー元ファイルとコピー先 ファイルの所有者が同一でない限り、それは落とされます。 コピー元ファイルのSETGIDビットが立っていても、コピー元ファイルとコピー先 ファイルが同一グループに属しかつコピーを行うユーザがそのグループ に入っていない限りそれは落とされます。 SETUIDビットとSETGIDビットの両方が立っている場合、上記のすべての 条件が満たされない限り、両方のビットが落とされます。 .Pp ファイルの生成および上書きには、適切なパーミッションがなければなりません。 .Pp .Fl R フラグが指定されるとシンボリックリンクは追跡されませんが、 そうでない限りデフォルトでシンボリックリンクは常に追跡されます。 .Fl H または .Fl L フラグ ( .Fl R フラグと併用) を用いると、シンボリックリンクの追跡を前述したように動作さ せることができます。 .Fl H , .Fl L , .Fl P オプションは、 .Fl R オプションが指定されていなければ無視されます。 また、これらのオプションは互いに打ち消し合い、 最後に指定されたものが有効になります。 .Sh 診断 .Nm ユーティリティは は成功すると戻り値 0 を、エラーが発生すると 0 より大きな戻り値を返します。 .Sh 互換性 従来版の .Nm には .Fl r オプションがありました。本実装でもこのオプションはサポートされていますが、 特殊ファイル・シンボリックリンク・FIFOなどを正しくコピーできないため、 これを使用することは奨められません。 .Sh 関連項目 .Xr mv 1 , .Xr rcp 1 , .Xr umask 2 , .Xr fts 3 , .Xr symlink 7 .Sh 規格 .Nm コマンドは、 .St -p1003.2 互換を想定しています。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。