cp(Unix)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
cp
Cp-example-command-gimp.gif
cpコマンドの使用例
原作者AT&Tベル研究所
開発者さまざまなオープンソースおよび商用の開発者
初回リリース1971年11月3日; 50年前 (1971-11-03
オペレーティング・システムUnixUnixライクPlan 9InfernoKolibriOS
プラットホームクロスプラットフォーム
タイプ指示
ライセンスcoreutilsGPLv3

コンピューティングcpは、ファイルディレクトリをコピーするためのさまざまなUnixおよびUnixライクなオペレーティングシステムのコマンドです。このコマンドには、ファイルを別のファイルにコピーするため、1つ以上のファイルをディレクトリにコピーするため、またはディレクトリ全体を別のディレクトリにコピーするためにプログラムに提示される引数のタイプによって表される、3つの主要な操作モードがあります。[1]

ユーティリティはさらに、実行された操作の詳細を示すさまざまなコマンドラインオプションフラグを受け入れます。2つの主要な仕様はPOSIXcp GNUcpです GNU cpには、POSIXバージョンに比べて多くの追加オプションがあります。[2]

このコマンドは、EFIシェルでも使用できます。[3]

歴史

cpバージョン1のUnixの一部でした。[4] GNU coreutilscpにバンドルされているバージョンは、Torbjorn Granlund、David MacKenzie、およびJimMeyeringによって作成されました。[5]

動作モード

cpには3つの主要な動作モードがあります。これらのモードは、呼び出し時にプログラムに提示される引数のタイプと数から推測されます。

  • プログラムにファイルへのパス名の引数が2つある場合、プログラムは最初のファイルの内容を2番目のファイルにコピーし、必要に応じて2番目のファイルを作成します。
  • プログラムにファイルのパス名の引数が1つ以上あり、それらに続いてディレクトリへのパスの引数がある場合、プログラムは各ソースファイルを宛先ディレクトリにコピーし、まだ存在していないファイルを作成します。
  • プログラムの引数が2つのディレクトリへのパス名である場合、cpはソースディレクトリ内のすべてのファイルを宛先ディレクトリにコピーし、必要なファイルまたはディレクトリを作成します。この動作モードでは 、ディレクトリの再帰コピーを示すために、追加のオプションフラグ(通常はr )が必要です。宛先ディレクトリがすでに存在する場合はソースが宛先にコピーされ、宛先が存在しない場合は新しいディレクトリが作成されます。

使用法

ファイルを別のファイルにコピーする:

cp [-fHip] [-]ソースファイルターゲットファイル

ファイルをディレクトリにコピーする

cp [-fHip] [-] sourcefile ... targetdirectory

ディレクトリをディレクトリにコピーする(-rまたは-Rを使用する必要があります)

cp -r | -R [-fHip] [-] sourcedirectory ... targetdirectory

オプションフラグ

  • -f(force)–書き込み操作のために開くことができない場合のターゲットファイルの削除を指定します。削除は、cpコマンドによって実行されるコピーの前に行われます。
  • -H(逆参照)–コマンドをシンボリックリンクcp(シンボリックリンク)に従わせることで、宛先がターゲットへのシンボリックリンクではなくターゲットファイルを持つようにします。
  • -i(インタラクティブ)–上書きするファイルの名前を示すプロンプトが表示されます。これは、TargetDirectoryまたはTargetFileパラメーターに、 SourceFileまたはSourceDirectoryパラメーターで指定されたファイルと同じ名前のファイルが含まれている場合に発生します。入力するyと(またはロケールに相当するy)、cpコマンドは続行されます。他の答えは、cpコマンドがファイルを上書きするのを防ぎます。
  • -nクラバリングなし)–誤ってファイルを上書きするのを防ぎます
  • -p(保持)–-pフラグは、対応するターゲットの各ソースパスの次の特性を保持します:最後のデータ変更時刻と最後のアクセスの時刻、所有権(これを行う権限がある場合のみ)、およびファイルパーミッションビット。
  • -Rまたは-r(再帰的)–ディレクトリを再帰的にコピーします

現在のディレクトリにファイルのコピーを作成します。

cp prog.c prog.bak

これにより、prog.cがprog.bakにコピーされます。prog.bakファイルがまだ存在しない場合は、cpコマンドで作成されます。存在する場合、cpコマンドはその内容をprog.cファイルの内容に置き換えます。

現在のディレクトリにある2つのファイルを別のディレクトリにコピーします。

cp jones smith / home / nick / clients

これにより、ファイルjonesが/ home / nick / clients / jonesにコピーされ、 smithが/ home / nick / clients / smithにコピーされます。

ファイルを新しいファイルにコピーし、ソースファイルに関連付けられている変更日、時刻、およびアクセス制御リストを保持します。

cp -p smith smith.jr

これにより、smithファイルがsmith.jrファイルにコピーされます。現在の日付とタイムスタンプでファイルを作成する代わりに、システムはsmith.jrファイルにsmithファイルと同じ日付と時刻を与えます。smith.jrファイルは、smithファイルのアクセス制御保護も継承します。

すべてのファイルとサブディレクトリを含むディレクトリを別のディレクトリにコピーします。

cp -R / home / nick / clients / home / nick / customers

これにより、すべてのファイル、サブディレクトリ、およびそれらのサブディレクトリ内のファイルを含むディレクトリクライアントがディレクトリcustomers / clientsにコピーされます一部のUnixシステムは、ディレクトリパスの終了に応じて、このモードでの動作が異なります。cp -R /home/nick/clients/ /home/nick/customersGNUシステムで使用すると、期待どおりに動作します。ただし、BSDシステムでは、ディレクトリclients自体ではなく、「clients」ディレクトリのすべての内容をコピーします。ソースディレクトリのパスがで終わる場合、GNUシステムとBSDシステムの両方で同じことが起こります。または..(末尾のスラッシュの有無にかかわらず)。

既存のファイルへのファイルのコピーは、既存のファイルを更新モードで開くことによって実行されます。これにより、ファイルのiノードが保持されます。これには書き込みアクセスが必要であり、ターゲットファイルは元のアクセス許可を保持します。

関連するUnixコマンド

  • cpio –ディレクトリ構造全体をある場所から別の場所にコピーします
  • tar –ファイルのアーカイブを作成します
  • link –ファイルまたはディレクトリへのリンクを作成するためのシステムコール
  • ln –ファイルまたはディレクトリへのリンクを作成します
  • mv –ファイルまたはディレクトリを移動します
  • rm –ファイルまたはディレクトリを削除します
  • unlink –ファイルまたはディレクトリを削除するためのシステムコール
  • chmod –ファイルまたはディレクトリのモード(別名パーミッション)を変更します
  • chown –ファイルまたはディレクトリの所有権を変更します
  • chgrp –ファイルまたはディレクトリのグループを変更します
  • uucp –UNIXからUNIXへのコピー
  • scp –SSH経由のセキュアコピー
  • 進行状況、[6] [7] cp、mv、ddの進行状況を表示するLinuxツール。

も参照してください

参考文献

  1. ^ https://www.man7.org/linux/man-pages/man1/cp.1.html
  2. ^ 「GNUCoreutils:cp呼び出し」www.gnu.org
  3. ^ 「EFIシェルとスクリプティング」インテル2013年9月25日取得
  4. ^ McIlroy、MD(1987)。Research Unixリーダー:プログラマーマニュアル、1971年から1986年(PDF)(テクニカルレポート)からの注釈付きの抜粋。CSTR。ベル研究所。139。
  5. ^ 「Cp(1):ファイル/ディレクトリのコピー-Linuxのマニュアルページ」
  6. ^ 「Progress(1)-Linuxのマニュアルページ」
  7. ^ 「Progress-CoreutilsProgressViewer」GitHub2021年11月14日。

外部リンク