英語フランス語スペイン語

Ad


OnWorksファビコン

cpposix - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで cpposix を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド cpposix です。

プログラム:

NAME


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

SYNOPSIS


cp [−フィップ] ソースファイル ターゲットファイル

cp [−フィップ] ソースファイル... ターゲット

cp −R [−H | −L | −P] [−フィップ] ソースファイル... ターゲット

DESCRIPTION


最初の概要形式は XNUMX つのオペランドで示されますが、どちらも既存のファイルではありません。
ディレクトリを入力します。 の cp ユーティリティは内容をコピーする必要があります ソースファイル (または、 ソースファイル
はシンボリック リンク タイプのファイルであり、ファイルの内容は によって参照されます。 ソースファイル)へ
によって指定された宛先パス ターゲットファイル。

XNUMX 番目の概要形式は XNUMX つ以上のオペランドで示されます。 −r オプションはありません
指定されており、最初の概要フォームは適用されません。 あった場合はエラーとなります
ソースファイル タイプがディレクトリのファイルである場合、 ターゲット 存在しない、または ターゲット しない
ディレクトリに名前を付けます。 の cp ユーティリティはそれぞれの内容をコピーする必要があります ソースファイル (または、
ソースファイル はシンボリック リンク タイプのファイルであり、ファイルの内容は によって参照されます。
ソースファイル) を連結して指定された宛先パスに変換します。 ターゲット、 独身者
文字の場合 ターゲット で終わらなかった、および最後のコンポーネント
ソースファイル.

XNUMX 番目の概要形式は XNUMX つ以上のオペランドで示されます。 −r オプションがある
指定。 The cp ユーティリティは、各ファイルをルートとするファイル階層内の各ファイルをコピーします。
ソースファイル 次のような名前の宛先パスに追加します。

* もしも ターゲット 存在し、既存のディレクトリ、対応するディレクトリの名前を指定します。
ファイル階層内の各ファイルの宛先パスは、以下を連結したものとなります。
ターゲット、 独身者文字の場合 ターゲット で終わらなかった、 そしてその
を含むディレクトリに対するファイルの相対パス名 ソースファイル.

* もしも ターゲット が存在せず、XNUMX つのオペランドが指定されている場合、対応する名前
宛先パス ソースファイル しなければならない ターゲット; 対応する名前
ファイル階層内の他のすべてのファイルの宛先パスは連結になります。
of ターゲット、 文字とファイルの相対パス名 ソースファイル.

以下の場合はエラーとなります ターゲット 存在せず、XNUMX つ以上のオペランドが指定されている、または
if ターゲット 存在しますが、ディレクトリに名前を付けていません。

以下の説明では、この用語は、 宛先ファイル によって指定されたファイルを指します。
宛先パス。 用語 ソースファイル コピーされるファイルを指します。
オペランドまたはルートに基づくファイル階層内のファイルとして指定されます。 ソースファイル オペランド。 もし
ソースファイル は、シンボリック リンク タイプのファイルです。

*の場合 −r オプションが指定されていませんでした、 cp タイプに基づいてアクションを実行し、
シンボリック リンクではなく、シンボリック リンクによって参照されるファイルの内容
それ自体、 −p オプションが指定されました。

*の場合 −r オプションが指定されました:

-- どのオプションも選択しない場合 −h, −l、または −p が指定されましたが、どれであるかは不明です
−h, −lまたは −p がデフォルトとして使用されます。

-- もし、 −h オプションが指定されました、 cp タイプに基づいてアクションを実行し、
として指定されたシンボリック リンクによって参照されるファイルの内容 ソースファイル
オペランド。

-- もし、 −l オプションが指定されました、 cp タイプに基づいてアクションを実行し、
として指定されたシンボリック リンクによって参照されるファイルの内容 ソースファイル
オペランド、またはファイル階層のトラバース中に検出されたシンボリック リンク。

-- もし、 −p オプションが指定されました、 cp として指定されたシンボリック リンクをコピーします。
ソースファイル オペランドとファイルのトラバース中に検出されたシンボリック リンク
階層にあり、シンボリック リンクをたどることはできません。

それぞれについて、 ソースファイル、次の手順を実行する必要があります。

1。 もし ソースファイル と同じファイルを参照します 宛先ファイル, cp 診断書を書くかもしれない
標準エラーへのメッセージ。 それ以上何もしません ソースファイル そして続けます
残りのファイルに。

2。 もし ソースファイル がディレクトリタイプの場合、次の手順を実行する必要があります。

a。 の場合 −r オプションが指定されていませんでした、 cp に診断メッセージを書き込む必要があります
標準エラー、それ以上何もしません ソースファイル、残りの項目に進みます
ファイル。

NS。 もしも ソースファイル オペランドとして指定されておらず、 ソースファイル ドットまたはドット・ドット、
cp それ以上何もしません ソースファイル 残りのファイルに進みます。

c. もし 宛先ファイル 存在しますが、システム インターフェイスで指定されていないファイル タイプです
POSIX.1-2008 のボリュームでは、動作は実装定義です。

d. もし 宛先ファイル 存在しますが、タイプがディレクトリではありません。 cp 診断書を書きます
メッセージを標準エラーに送信します。それ以上何もしません ソースファイル または以下のファイル
ソースファイル ファイル階層内で、残りのファイルに進みます。

e. ディレクトリの場合 宛先ファイル 存在しないため、ファイルで作成されます
許可ビットは、許可ビットと同じ値に設定されます。 ソースファイルによって修正されました。
ユーザーのファイル作成マスク −p オプションが指定されていなかった場合、
S_IRWXU とビットごとの包含論理和をとります。 もし 宛先ファイル 作成することはできませんが、 cp
診断メッセージを標準エラーに書き込み、それ以上何もしません ソースファイル,
残りのファイルに進みます。 場合は不特定 cp ファイルをコピーしようとします
をルートとするファイル階層内 ソースファイル.

f. ディレクトリ内のファイル ソースファイル ディレクトリにコピーされます 宛先ファイル,
次のファイルを使用して、ここにリストされている 1 つの手順 (4 ~ XNUMX) を実行します。 ソースファイルs.

g. もし 宛先ファイル が作成された場合、そのファイル許可ビットは (必要に応じて) 変更されます。
のものと同じになる ソースファイルのファイル作成マスクによって変更されます。
ユーザーの場合、 −p オプションが指定されていません。

h. の cp ユーティリティはそれ以上何もしません ソースファイル 残りの項目に進みます
ファイル。

3。 もし ソースファイル 通常ファイルのタイプの場合は、次の手順を実行する必要があります。

a. 次の場合の動作は不定です 宛先ファイル 存在し、以前の人によって書かれた
ステップ。 それ以外の場合は、 宛先ファイル 存在する場合は、次の手順を実行する必要があります。

私。 もし −i オプションが有効な場合、 cp ユーティリティはプロンプトを
標準エラーを取得し、標準入力から行を読み取ります。 応答が
肯定的ではなく、 cp それ以上何もしません ソースファイル そしてどれかに進みます
残りのファイル。

ii. ファイル記述子 宛先ファイル アクションを実行することで取得されます
と同等 開いた()のシステムインターフェイスボリュームで定義された関数
POSIX.1‐2008 を使用して呼び出される 宛先ファイル として path 引数とビットごとの-
O_WRONLY と O_TRUNC の包含的 OR を フラグ 引数。

iii. ファイル記述子の取得に失敗し、 −f オプションが入っています
効果、 cp 同等のアクションを実行してファイルの削除を試みます
リンク解除()のシステムインターフェイスボリュームで定義された関数
POSIX.1‐2008 を使用して呼び出される 宛先ファイル として path 口論。 もしこの試みが
成功し、 cp ステップ 3b に進みます。

NS。 もしも 宛先ファイル 存在しない場合は、次のコマンドを実行してファイル記述子を取得します。
と同等のアクション 開いた() システム インターフェイス ボリュームで定義された関数
POSIX.1‐2008 を使用して呼び出される 宛先ファイル として path 引数とビットごとの-
O_WRONLY と O_CREAT の包含的 OR を フラグ 口論。 ファイルのアクセス許可
のビット ソースファイル となるだろう モード 引数。

c. ファイル記述子の取得に失敗した場合は、 cp 診断書を書きます
メッセージを標準エラーに送信します。それ以上何もしません ソースファイル、および任意のに進みます
残りのファイル。

d. の内容 ソースファイル ファイル記述子に書き込まれるものとします。 任意の書き込み
エラーが発生する可能性があります cp 診断メッセージを標準エラーに書き込んで続行するには
ステップ 3e に進みます。

e. ファイル記述子は閉じられなければなりません。

f。 The cp ユーティリティはそれ以上何もしません ソースファイル。 書き込みエラーが発生した場合
ステップ 3d では、次の場合は未指定です。 cp 残りのファイルを続行します。 いいえの場合
ステップ 3d で書き込みエラーが発生しました。 cp 残りのファイルに進みます。

4. それ以外の場合、 −r オプションが指定された場合、次の手順が実行されます。

a。 ザ・ 宛先ファイル と同じファイルタイプで作成されます。 ソースファイル.

NS。 もしも ソースファイル タイプ FIFO のファイルである場合、ファイル許可ビットは同じでなければなりません
のそれらとして ソースファイル、 ユーザーのファイル作成マスクによって変更される場合、 −p
オプションが指定されていませんでした。 それ以外の場合、次の権限、所有者 ID、およびグループ ID
宛先ファイル 実装定義です。

何らかの理由でこの作成が失敗した場合、 cp に診断メッセージを書き込む必要があります
標準エラー、それ以上何もしません ソースファイル、残りの項目に進みます
ファイル。

c. もし ソースファイル はシンボリック リンク タイプのファイルであり、オプションには
動作するシンボリック リンク自体、に含まれるパス名 宛先ファイル
に含まれるパス名と同じである必要があります ソースファイル.

これが何らかの理由で失敗した場合、 cp 標準に診断メッセージを書き込むものとします
エラーです。これ以上何もしません ソースファイルをクリックして、残りのファイルに進みます。

実装が追加または代替のアクセス制御メカニズムを提供する場合 (「
POSIX.1‐2008の基本定義ボリューム、 セクション 4.4, File アクセス 権限)、 彼らの
ファイルのコピーに対する影響は実装で定義されます。

OPTIONS


  cp ユーティリティは、POSIX.1‐2008の基本定義ボリュームに準拠する必要があります。 セクション 12.2,
ユーティリティ 構文 ガイドライン.

次のオプションがサポートされます。

−f 「宛先ファイルのファイル記述子を取得できない場合」で説明されているように、
ステップ 3.a.ii. では、宛先ファイルのリンクを解除して続行します。

−h ファイルの種類と内容に基づいてアクションを実行します。
として指定されたシンボリック リンク ソースファイル オペランド。

−i 既存のディレクトリ以外にコピーする前に、標準エラーにプロンプ​​トを書き込みます。
宛先ファイル。 標準入力からの応答が肯定的な場合、
コピーを試みるものとする。 そうでない場合は、そうではありません。

−l ファイルの種類と内容に基づいてアクションを実行します。
として指定されたシンボリック リンク ソースファイル オペランドまたは任意のシンボリック リンク
ファイル階層のトラバース中に発生しました。

−p として指定されたシンボリック リンクに対してアクションを実行します。 ソースファイル オペランドまたは任意の
ファイル階層のトラバース中にシンボリック リンクが検出されました。

−p 各ソース ファイルの次の特性を対応するソース ファイルに複製します。
宛先ファイル:

1. 最終データ変更時刻と最終アクセス時刻。 これなら
何らかの理由で複製が失敗する場合、 cp に診断メッセージを書き込む必要があります
標準エラー。

2. ユーザー ID とグループ ID。 何らかの理由でこの複製が失敗した場合、
かどうかは不明 cp 診断メッセージを標準エラーに書き込みます。

3. ファイル許可ビットと S_ISUID ビットおよび S_ISGID ビット。 他の、
実装で定義されているため、ビットも重複する可能性があります。 この重複がある場合は、
何らかの理由で失敗し、 cp 診断メッセージを標準エラーに書き込みます。

ユーザー ID またはグループ ID が重複できない場合、ファイル許可ビットは
S_ISUID と S_ISGID はクリアされます。 これらのビットがソースに存在する場合
ファイルは存在するが、宛先ファイルでは重複していない場合、それが重複するかどうかは不明です。
cp 診断メッセージを標準エラーに書き込みます。

前述の特性が複製される順序は指定されていません。
  宛先ファイル これらの特性を保存できない場合は削除してはならない。

−r ファイル階層をコピーします。

相互に排他的なオプションを複数指定する −h, −l, −p してはならない
エラーと見なされます。 指定された最後のオプションは、
ユーティリティ。

オペランド


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

ソースファイル
コピーするファイルのパス名。 もし ソースファイル オペランドは '−'、それは
という名前のファイルを参照します - ; 実装ではそれを意味標準として扱ってはなりません
入力。

ターゲットファイル
既存または存在しないファイルのパス名。単一ファイルの場合の出力に使用されます。
ファイルがコピーされます。 もし ターゲットファイル オペランドは '−'、という名前のファイルを参照します。
- ; 実装は、それを標準出力を意味するものとして扱ってはなりません。

ターゲット コピーされたファイルを含むディレクトリのパス名。

標準入力


標準入力は、各プロンプトに応答して入力行を読み取るために使用されます。
STDERRセクションで指定されています。 それ以外の場合は、標準入力は使用されません。

入力 ファイル


オペランドとして指定される入力ファイルは、任意のファイル タイプにすることができます。

ENVIRONMENT 変数


次の環境変数は、の実行に影響を与えます。 cp:

言語 設定されていない、または設定されていない国際化変数のデフォルト値を指定します
ヌル。 (POSIX.1‐2008の基本定義ボリュームを参照してください。 セクション 8.2,
国際化 Variables 国際化の優先順位について
ロケールカテゴリの値を決定するために使用される変数。)

LC_ALL 空でない文字列値に設定されている場合は、他のすべての値を上書きします
国際化変数。

LC_COLLATE
範囲、同値類、および複数の動作のロケールを決定します。
のために定義された拡張正規表現で使用される文字照合要素
  はいexpr のロケールキーワード LC_MESSAGES カテゴリ。

LC_CTYPE テキストデータのバイトシーケンスを解釈するためのロケールを決定します
文字として(たとえば、のマルチバイト文字ではなくシングルバイト
引数と入力ファイル)およびで使用される文字クラスの動作
に対して定義された拡張正規表現 はいexpr のロケールキーワード
LC_MESSAGES カテゴリ。

LC_MESSAGES
肯定応答の処理に使用されるロケールと、使用されるロケールを決定します
に書き込まれる診断メッセージとプロンプトの形式と内容に影響を与える
標準エラー。

NLSパス の処理のためのメッセージカタログの場所を決定します LC_MESSAGES.

非同期 イベント


デフォルト。

標準出力


使用されていない。

標準


プロンプトは、で指定された条件下で標準エラーに書き込まれます。
「説明」セクション。 プロンプトには宛先パス名が含まれますが、その形式は次のとおりです。
それ以外の場合は未指定。 それ以外の場合、標準エラーは診断にのみ使用されます。
メッセージ。

出力 ファイル


出力ファイルの種類は任意です。

拡張済み DESCRIPTION


なし。

EXIT ステータス


次の終了値が返されます。

0 すべてのファイルが正常にコピーされました。

> 0エラーが発生しました。

結果 OF エラー


If cp 信号またはエラーによって途中で終了した場合、ファイルまたはファイル階層が中断される可能性があります。
部分的にしかコピーされておらず、ファイルやディレクトリが間違った権限やアクセス権を持っている可能性があります。
そして修正回数。

  フォロー中 セクション   有益です。

お申込み USAGE


set-user-ID ビットと set-group-ID ビットは、ファイルの作成時に明示的にクリアされます。 これ
ユーザーが set-user-ID または set-group-ID を設定するプログラムを作成できないようにするためです
ファイルをコピーするとき、または新しいグループが set-user-ID または set-group-ID ファイルにアクセスできるようにするとき
ユーザーの数。 たとえば、ファイルが set-user-ID であり、コピーに別のグループ ID が設定されている場合
新しいユーザー グループは、ソースよりも set-user-ID プログラムに対する実行権限を持ちます。
以前にやった。 これは特に、ユーザーのツリーをコピーするスーパーユーザーにとって問題になります。


なし。

理論的根拠


  −i このオプションは BSD システムに存在し、アプリケーションとユーザーに回避方法を提供します。
コピー時に誤ってファイルを削除してしまう可能性があります。 4.3 BSD バージョンではプロンプトが表示されませんが、
標準入力は端末ではないため、標準開発者は、 −i  
インタラクションを要求するため、宛先パスが存在する場合、ユーティリティは
標準入力で応答するものからの命令。

インタラクティブプロンプトの正確な形式は指定されていません。 の一般的な性質のみ
実装がより記述的なものを望む可能性があるため、プロンプトの内容が指定されます
過去の実装で使用されていたものよりもプロンプトが異なります。 したがって、
−i このオプションはシステムに依存して、ユーザーに最適なダイアログを直接提供します。
指定された動作に基づいて。

  −p このオプションは、BSD システムでの過去の慣行であり、最後のデータの時刻を複製します。
変更内容と最終アクセス時刻。 POSIX.1-2008 のこのボリュームは、POSIX.XNUMX-XNUMX を保存するために拡張されています。
ユーザー ID とグループ ID、およびファイル権限。 この要件は明らかです
問題は、ディレクトリがコピー後にほぼ確実に変更されるという点です。 これ
POSIX.1-2008 のボリュームでは、変更時間を保存する必要があります。 声明
特性が複製される順序は指定されていないことが許可されます。
ユーザーに最大限のセキュリティを提供する実装。 実装
所有者、グループ、
とモードの順序が間違っているか、異なる所有者、グループ、またはモードでファイルを作成している
最終的な値。

かどうかは不明です cp ユーザー ID とグループ ID ができない場合に診断メッセージを書き込みます。
ユーザーが使用する習慣が広く普及しているため、設定される必要があります。 −p の一部を複製するには
ファイルの特性を考慮し、他のファイルの重複には無関係です。 歴史的な実装
以外のエラーに関する診断メッセージのみを書き込みます。 [エパーマ].

この標準の以前のバージョンには、 −r ファイルをコピーするオプション
階層。 の −r オプションは、BSD および BSD 派生システムにおける歴史的な慣例です。 これ
このオプションは POSIX.1-2008 では指定されなくなりましたが、一部の実装では存在する可能性があります。
  −r オプションは、 −r オプション、との一貫性のために選択
POSIX.1-2008 のこのボリュームに含まれる、再帰的なディレクトリ降下を行う他のすべてのオプション。

違い −r そして取り外したもの −r オプションは治療にあります cp ファイルの
通常とディレクトリ以外のタイプ。 どのように実装するかは実装で定義されました。 - オプション
過去の実装と、それを選択した実装の両方を許可するように特別なファイルを処理しました。
サポート −r と同じ能力を持つ −r POSIX.1-2008 のこのボリュームで定義されています。 の
オリジナル −r 歴史的な理由により、フラグは特別なファイルを以前と何ら異なる方法で処理しませんでした。
通常のファイルですが、常にファイルを読み取り、その内容をコピーします。 これには明らかな問題がありました
特殊なファイルタイプが存在する場合。 たとえば、キャラクターデバイス、FIFO、ソケットなどです。

ファイル階層のコピー中に障害が発生した場合、 cp しようとすることが求められます
階層内で同じレベルにあるファイル、または障害が発生したファイルより上のファイルをコピーします。
発生した。 場合は不特定 cp ファイルの下にファイルをコピーしようとします。
失敗が発生しました (どのような場合でも成功することはありません)。

作成された特殊なファイルタイプの権限、所有者、およびグループは意図的に残されています。
実装定義どおり。 これは、システムが特別な要件 (
たとえば、ユーザーがキャラクターの特別なデバイスを作成できるようにしますが、それを行う必要があります。
特定のグループが所有しています)。 一般に、権限を次のように設定することを強くお勧めします。
所有者とグループは、ユーザーが履歴を実行した場合と同じである必要があります。 mknod, ln、または他の
ファイルを作成するユーティリティ。 また、追加の権限が必要になる可能性もあります。
ブロック、文字、またはその他の実装定義の特殊なファイル タイプを作成します。

また、 −p オプションでは、すべての set-user-ID と set-group-ID が明示的に必要です
所有者またはグループ ID のいずれかを設定できない場合、権限は破棄されます。 これは保管するものです
ユーザーがプログラムをコピーするときに意図せずに特別な権限を与えてしまうことを防ぎます。

通常のファイルを作成する場合、過去のバージョンの cp ソースファイルのモードを次のように使用します
ファイルモード作成マスクによって変更されます。 他の選択肢は、次のモードを使用することでした。
ソースファイルは作成マスクによって変更されていない、または指定されたものと同じモードを使用します
ユーザーが作成した新しいファイル (およびソース ファイルの実行ビット) にコピーしてから、
ファイルモード作成マスクによって変更します。 変更する強い理由がない場合
歴史的な慣例として、その大部分は維持されていました。

ディレクトリを作成するとき、 cp ソースディレクトリのモードを使用します。
さらに、ファイル モードの作成によって変更された、所有者の読み取り、書き込み、および検索ビット
マスク。 これは次のように行われます cp ユーザーが読み取り権限を持っているツリーをコピーできますが、
所有者はそうではありません。 副作用として、ファイル作成マスクが所有者を拒否すると、
権限、 cp 失敗します。 また、コピーが完了すると、 cp セット
作成されたディレクトリに対するアクセス許可は、ソース ディレクトリと同じであり、変更されません。
ファイル作成マスク。

この動作は次のように変更されました。 cp のコンテンツを常に作成できます。
ファイル作成マスクに関係なく、ディレクトリ。 コピーが完了すると、権限が
ファイル作成マスクによって変更されたように、ソース ディレクトリと同じになるように設定されます。
過去の動作からのこの後者の変更は、ユーザーが誤って作成することを防ぐためのものです。
通常設定される権限を超えた権限を持つディレクトリと、一貫性を保つため
の行動 cp ファイルを作成する際に。

それは必須ではありません cp ファイルをそれ自体にコピーする試みを検出します。 しかし、
実装ではそうすることが強く推奨されます。 過去の実装では検出されています
ほとんどの場合、その試みが行われます。

POSIX.1-2008 の本書には、サブツリーをコピーする XNUMX つの方法があります。 他の方法
の一部として説明されています PAX ユーティリティ (参照 PAX)。 どちらの方法も歴史的な慣例です。
  cp ユーティリティは、よりシンプルで直感的なインターフェイスを提供します。 PAX より上質なものを提供します
制御の粒度。 それぞれが他方に追加機能を提供します。 で
特に PAX 階層のハードリンク構造を維持しながら、 cp ではない。 それ
標準開発者の意図は、結果が同様になることです(適切な使用法)。
両方のユーティリティのオプションの組み合わせ)。 結果が同一である必要はありません。
アプリケーションの難しさのバランスを取るには十分な利益が得られないようでした
実装では、結果がまったく同じであることを保証する必要があります。

許可する文言 cp ディレクトリを実装定義のファイルタイプにコピーすることはできません。
POSIX.1-2008 の System Interfaces ボリュームで指定されたボリュームが提供されるため、
シンボリック リンクをサポートする実装では、ディレクトリのコピーを禁止する必要はありません
シンボリックリンクへ。 POSIX.1-2008 ファイルのシステム インターフェイス ボリュームに対するその他の拡張機能
タイプもこの抜け穴を使用する必要があるかもしれません。

未来 道順


なし。

onworks.net サービスを使用して cpposix をオンラインで使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad