logo

Linux/Unix の cp コマンド | Linuxコピーファイル

「cp」はコピーを意味します。 「cp」コマンドはファイルまたはディレクトリをコピーするために使用されます。

cp コマンドの概要

cp コマンドは、ディレクトリとファイルをコピーするために使用されます。このコマンドには、ファイルを他のファイルにコピーする、複数のファイルを任意のディレクトリにコピーする、またはディレクトリ全体を他のディレクトリにコピーするために、プログラムに示される引数のタイプによって表される 3 つの主要な操作モードが含まれています。

さらに、このユーティリティは、実装された操作の詳細を指定するためのいくつかのコマンド ライン オプション フラグを受け入れます。 2 つの主な仕様は、GNU cp と POSIX cp です。 GNU cp には、POSIX バージョンのさまざまな追加オプションが含まれています。また、このコマンドは EFI シェル内でも使用できます。

cpコマンドの動作モード

cp コマンドには 3 つの主要な動作モードが含まれています。これらのモードは、呼び出し中のプログラムに示される引数の数とタイプから完了します。

  • プログラムは、最初のファイルの内容を 2 番目のファイルにコピーでき、プログラムにファイルへの 2 つのパス名引数が含まれる場合、2 番目のファイルは必須になります。
  • プログラムは、すべてのソース ファイルを目的のディレクトリにコピーし、プログラムに 1 つ以上のファイルのパス名引数が含まれている場合にまだ使用できないファイルを作成し、それらをディレクトリへのパス引数として追跡できます。
  • cp コマンドは、ソース ディレクトリ内のすべてのファイルを目的のディレクトリにコピーし、プログラムの引数が 2 つのディレクトリのパス名である場合に必要なディレクトリまたはファイルを作成します。この操作モードには、再帰的なディレクトリのコピーを表す追加のオプション フラグが必要です。ソースは宛先にコピーされますが、宛先ディレクトリがすでに使用可能な場合、宛先が存在しない場合は新しいディレクトリが作成されます。

cpコマンドのオプション

オプション 説明
--アーカイブ、-a これは、-dR --preserve=all と同等です。
--属性のみ ファイルのデータはコピーされず、属性のみがコピーされます。
-b バックアップに似ていますが、引数は受け付けません。
--バックアップ[=コントロール] 既存のすべての宛先ファイルのバックアップが作成されます。
--コピーコンテンツ 再帰的な場合は、特別なファイルの内容をコピーします。
-d --no-dereference --preserve=links と同等です。
--force、-f 既存の宛先ファイルを開けない場合は、それを削除して再試行してください (-n フラグも使用されている場合、このオプションは回避されます)。
--インタラクティブ、-i 上書きする前に確認を求めます (以前の -n フラグをオーバーライドします)。
-H SOURCE では、コマンドラインのシンボリック リンクが続きます。
--リンク、-l コピーではなくハードリンクファイルを指定します。
--逆参照、-L SOURCE では、常にシンボリック リンクに従います。
--クロバーなし、-n 既存のファイルは上書きされません (-i フラグはオーバーライドされます)。
--逆参照なし、-P SOURCE では、シンボリック リンクをたどることはありません。
-p これは、--preserve=mode、タイムスタンプ、所有権と同等です。
--preserve[=ATTR_LIST] 記述された属性が保持されます。可能であれば追加の属性: all、xattr、links、context。
--no-preserve=ATTR_LIST 記述された属性は保持されません。
- 両親 ディレクトリの下では、完全なソース ファイル名が使用されます。
--recursive、-r、-R ディレクトリを再帰的にコピーします。
--reflink[=いつ] CoW/クローンのコピーを制御します。
--削除先 これは、既存の宛先ファイルを開こうとする前にすべて削除します (--force とは対照的)。
--sparse=いつ スパース ファイルの確立を制御します。
--文字列の末尾のスラッシュ すべての SOURCE 引数から末尾のスラッシュを削除します。
--シンボリックリンク、-s コピーではなくシンボリックリンクを作成します。
--suffix=サフィックス、-S これは、共通のバックアップ接尾辞をオーバーライドします。
--target-directory=DIRECTORY, -t すべての SOURCE 引数を DIRECTORY にコピーします。
--ターゲットディレクトリなし、-T DEST を一般的なファイルと見なします。
--更新、-u ソース ファイルが宛先ファイルと比較して新しい場合、または宛先ファイルが指定されていない場合は、コピーされます。
--verbose、-v 何が行われているかを指定します。
--1 ファイルシステム、-x ファイルシステム上に残ります。
-と 宛先ファイルの SELinux セキュリティ コンテキストをデフォルトのタイプに設定します。
--context[=CTX] これは -Z と同じですが、CTX が指定されている場合は、SMACK または SELinux セキュリティ コンテキストを CTX に設定します。
- ヘルプ ヘルプメニューが表示されて終了します。
- バージョン バージョンの詳細が表示されて終了します。

スパース SOURCE ファイルは安価なヒューリスティックによって検出され、関連する DESR ファイルはデフォルトでスパースに作成されます。それは人が選んだ行動です --sparse=自動 。説明できます --sparse=常に SOURCE ファイルに十分な長さのゼロバイトが含まれている場合は、スパース DEST ファイルを作成します。私たちも応募できます --sparse=決してしない スパースファイルの確立を制限します。

もし --reflink[=常に] 前述のとおり、データ ブロックが変更された場合にのみコピーされる軽量コピーを実装します。それが不可能な場合、または --reflink=自動 というメッセージが表示されると、コピーは失敗し、標準コピーに戻ります。私たちも応募できます --reflink=決してしない 標準コピーが実装されていることを保証します。

ファイルを同じディレクトリにコピーする場合の構文は次のようになります。

 cp 

Linux ファイル cp

上のスナップショットでは、次のコピーを作成しました。 「ドキュメント」 そしてそれを次のように名付けました '新しい' 。万が一の場合は、 (この場合は「newdocu」) がすでに存在する場合、以前のファイルを単純に上書きします。

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

宛先ディレクトリのパスを指定する必要があります。

int への文字列

以下のスナップショットには、以前は「テキスト」ファイルがありませんでした。命令を出した後、 '文章' ファイルは宛先ディレクトリにコピーされました。 'デスクトップ'

Linux ファイル cp

Linux cp -r

オプション 「r」 copy コマンドを使用すると、すべてのコンテンツを含むディレクトリをソース ディレクトリから宛先ディレクトリにコピーできます。

構文:

 cp -r 

例:

 cp -r library /home/sssit/Documents 

Linux cp -r

上記の例では、ディレクトリをコピーしました '図書館' 宛先ディレクトリへ /ホーム/sssit/ドキュメント 。ここでは、「library」ディレクトリの内容を含むすべての内容が宛先ディレクトリにコピーされています。

Linux で複数のファイルまたはディレクトリをコピーする

複数のファイルまたはディレクトリを宛先ディレクトリに一度にコピーできます。この場合、ターゲットはディレクトリである必要があります。複数のファイルをコピーするには、次のコマンドを使用できます ワイルドカード (cp *.extension) も同じパターンです。

構文:

 cp *. 

例:

 cp *.txt /home/sssit/Documents 

Linux で複数のファイルをコピーする

上の例では、同じ拡張子のファイル (file1、file2、file3) をコピーしました。 '。TXT' ドキュメントディレクトリへ。

Linux cp --backup

コピーするファイルが宛先ディレクトリにすでに存在する場合は、このコマンドを使用して既存のファイルをバックアップできます。

構文:

Androidで隠しアプリを開く方法
 cp --backup 

例:

 cp --backup file2.txt /home/sssit/Downloads 

LinuxファイルCPバックアップ

上からわかるように、 「ファイル2.txt」 は宛先ディレクトリにすでに存在します。したがって、このファイルのバックアップを作成し、同じディレクトリに (同じ名前で) コピーしました。

ここで、宛先ディレクトリ「Downloads」には、同じ名前の 2 つのファイル (つまり「file2.txt」) があります。

Linux cp -i

cp '-i' オプションを使用すると、ファイルを上書きする前に一度確認することができます。

構文:

 cp -i 

例:

 cp -i file3.txt /home/sssit/Desktop 

Linux cp -i

ご覧のとおり、ファイルを上書きする許可を求めています。 「ファイル3.txt」 このファイルは宛先ディレクトリにすでに存在しているためです。今、あなたは押すことができます そして ファイルを上書きし、 n ファイルを上書きしないようにします。

Linux cp -l

ファイルをコピーするのではなく、ファイルのハード リンクを作成したい場合は、オプション 'l' を使用できます。

注記: ファイルのハード リンクを作成する際、2 つのファイルの i ノード番号は同じままになります。コピーの場合、inode番号が変わります。

構文:

 cp -l 

例:

 cp -l file1.txt usr/ 

Linux ファイル cp -l

ここで、ファイルのハードリンクを作成したことに注意してください。 「ファイル1.txt」「私たち」 。両方のファイルの i ノード番号は同じです。

JavaScriptのコールバック地獄

Linux cp -p

cp '-p' オプションは、ファイルのプロパティと属性を保存するために使用されます。必要な選択したプロパティを保存することもできます。

構文:

 cp -p 

例:

 cp -p file2.txt usr/ 

Linux cp -p

ここで、上の図にある 2 つのファイル (元のファイルとコピーされたファイル) を照合できます。どちらも同じプロパティを持っています。

Linux cp -u -v

cp -u -v コマンドは、宛先ファイルが欠落しているか存在しないことを確認する場合に使用します。

構文:

 cp -u -v 

例:

 cp -u -v docc file1.txt /home/sssit/Downloads/ 

Linux cp -u -v

上の図では、2 つのファイルがあることがわかります。 'シャワー' そして 「ファイル1.txt」 。次に、これら 2 つのファイルを「ダウンロード」ディレクトリにコピーします。しかし、「ダウンロード」ディレクトリにファイル「file1.txt」がすでに存在していることはわかりません。

コマンドを与える 「cp -u -v」 は既存のファイル (file1.txt) を自動的に処理し、上書きしません。

このコマンドは、大きなファイルをコピーする場合に便利です。