cp (Unix)

cp
原作者AT&Tベル研究所
開発者さまざまなオープンソースおよび商用開発者
初回リリース1971年11月3日 (1971年11月3日
書かれたプラン9:C
オペレーティング·システムUnixUnixライクPlan 9InfernoKolibriOS
プラットフォームクロスプラットフォーム
タイプ指示
ライセンスcoreutils : GPLv3プラン 9: MIT ライセンス

cpファイルディレクトリをコピーするためのシェルコマンドです。

ユーザーが対象ファイルへの書き込み権限を持っている場合、コマンドは対象ファイルを更新モードで開き、その内容をコピーします。これにより、デフォルトの権限で新しいファイルを作成するのではなく、ファイルのinodeが保持されます。

このコマンドはバージョン1 Unix [ 1 ]の一部であり、POSIXで規定されています。GNUによる実装では、POSIX仕様を超える多くの追加オプションが用意されています。[ 2 ]このコマンドはGNU Core Utilities [ 3 ]にバンドルされており、 EFIシェルでも利用できます。[ 4 ]

オプション

  • -f(強制) – 書き込み操作のために開けない場合、各ターゲットファイルを削除することを指定します。削除はコピーの前に行われます。
  • -H(逆参照) –シンボリックリンクをたどり、宛先にターゲットへのリンクではなくターゲットファイルが含まれるようにします。
  • -i(対話型) – ソースファイルと衝突する各ターゲットファイルを上書きするようにユーザーに促す
  • -n上書きなし) – ファイルの上書きを防止します
  • -p(保存) – 最終変更時刻、最終アクセス時刻、所有権、ファイル権限など、各ソースファイルのメタデータを宛先に保存します。
  • -Rまたは-r(再帰的) – ディレクトリを再帰的にコピーする

モード

このコマンドには、コマンドライン引数から推測されるように、3つの主要な動作モードがあります。[ 5 ]

ファイルをコピー

既存のファイルへのパスの後に既存のディレクトリを参照しないパスが続く場合、最初のパスのファイルが 2 番目のパスにコピーされます。

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

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

既存のファイルへの 1 つ以上のパスの後に既存のディレクトリへのパスが続く場合、ファイルはディレクトリにコピーされます。

cp [-fHip] [--] ソースファイル... ターゲットディレクトリ 

ディレクトリをコピー

recurse コマンドラインオプション(通常-r、既存のディレクトリへのパスと2番目のパス)を使用すると、ディレクトリ内のファイルが2番目のパスにコピーされます。2番目のパスが何も参照していない場合、ソースディレクトリがそのパスにコピーされます。2番目のパスが既存のディレクトリを参照している場合、ソースディレクトリはサブディレクトリとしてコピー先ディレクトリにコピーされます。

cp -r|-R [-fHip] [--] ソースディレクトリ... ターゲットディレクトリ 

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

cp prog.c prog.bak 

これにより、ファイルjonesおよびsmith が既存のディレクトリclientsにコピーされます。

CPジョーンズスミスのクライアント 

このコマンドは、ファイルsmithをsmith.jrというファイルにコピーします。現在の日付とタイムスタンプを持つファイルを作成する代わりに、元のファイルから日付と時刻をコピーします。また、コピーには、アクセス制御保護などの他のメタデータも元のファイルから取得されます。

cp -p スミス スミス.jr 

これにより、ディレクトリclientsとその中のファイル、サブディレクトリ、およびそれらのサブディレクトリ内のファイルが、新しいディレクトリcustomers/clientsに再帰的にコピーされます。

cp -R クライアント 顧客 

一部の実装では、ディレクトリパスの終端に応じて再帰モードでの動作が異なります。GNUcp -R clients/ customers実装では を使用すると上記と同様に動作します。ただし、BSD実装では、clientsディレクトリ自体ではなく、clientsディレクトリの内容をコピーしますソースディレクトリパスが . または .. (末尾のスラッシュの有無は問いません)で終わる場合、GNU実装とBSD実装の両方で同じ動作になります。

参照

  • copy  – ファイルをコピーするためのシェルコマンド
  • cpio  – ファイルアーカイバと関連ファイル形式
  • GNU Core Utilities  – GNU の標準的な Unix ベースのユーティリティのコレクション
  • POSIXコマンドのリスト
  • mv  – ファイルを移動するためのシェルコマンド
  • rm  – ファイルを削除するためのシェルコマンド
  • progress – cp、mv、ddの進行状況を表示するLinuxツール[ 6 ] [ 7 ]
  • rsync  – ファイル同期プロトコルとソフトウェア
  • scp  – コンピュータ間でファイルをコピーするためのネットワークプロトコルリダイレクト先の簡単な説明を表示するページ
  • tar  – ファイルを1つのファイルに結合するシェルコマンド
  • uucp  – コンピュータプログラムとプロトコルのスイート

参考文献