Bash

Linux – cpコマンドの使い方 – ファイル/ディレクトリのコピー

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

基本的な使い方は「cp [オプション] コピー元 コピー先」です。

ファイルをコピーする場合、単純に cp file1 file2 とするとfile1をfile2にコピーします。

ディレクトリをコピーする場合は、オプション -r (再帰的コピー)を使用し、 cp -r dir1 dir2 とします。

オプション -i は上書き確認、 -v は詳細表示を行います。

cpコマンドとは

cpコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるファイルコピーのためのコマンドです。

このコマンドを使用することで、指定したファイルやディレクトリを別の場所にコピーすることができます。

cpcopy の略で、非常にシンプルながらも強力な機能を持っています。

主な特徴

  • ファイルのコピー: 単一または複数のファイルを指定した場所にコピーできます。
  • ディレクトリのコピー: ディレクトリ全体を再帰的にコピーすることも可能です。
  • オプションの豊富さ: コピー時に上書き確認や進行状況の表示など、さまざまなオプションを指定できます。

cpコマンドの基本的な使い方

cpコマンドの基本的な使い方は非常にシンプルです。

以下に、基本的な構文といくつかの使用例を示します。

基本構文

cp [オプション] コピー元 コピー先
コマンド説明
cp file1.txt file2.txtfile1.txtfile2.txtとしてコピーします。
cp -i file1.txt file2.txt上書きする際に確認を求めます。
cp -r dir1/ dir2/dir1ディレクトリをdir2に再帰的にコピーします。

オプションの説明

  • -i: 上書きする前に確認を求める。
  • -r: ディレクトリを再帰的にコピーする。
  • -u: コピー先が古い場合のみコピーする。

これらの基本的な使い方を理解することで、cpコマンドを効果的に活用できるようになります。

cpコマンドの主なオプション

cpコマンドには、ファイルやディレクトリをコピーする際に便利なオプションがいくつかあります。

これらのオプションを使うことで、コピーの挙動を細かく制御できます。

以下に主なオプションをまとめました。

オプション説明
-i上書きする前に確認を求める。
-rディレクトリを再帰的にコピーする。
-uコピー先が古い場合のみコピーする。
-vコピーの進行状況を表示する。
-aアーカイブモードで、ファイルの属性を保持しながらコピーする。
-f上書きする際に確認せず強制的にコピーする。
--preserveファイルの属性(タイムスタンプ、パーミッションなど)を保持する。

オプションの使用例

  • 上書き確認:
cp -i file1.txt file2.txt

上書きする際に確認を求めます。

  • 再帰的コピー:
cp -r dir1/ dir2/

dir1ディレクトリをdir2に再帰的にコピーします。

  • 進行状況の表示:
cp -v file1.txt file2.txt

コピーの進行状況を表示します。

これらのオプションを活用することで、cpコマンドをより効果的に使用できるようになります。

cpコマンドの応用的な使い方

cpコマンドは基本的なファイルコピーだけでなく、さまざまな応用的な使い方が可能です。

以下にいくつかの応用例を紹介します。

1. 複数ファイルのコピー

複数のファイルを一度にコピーすることができます。

コピー先にはディレクトリを指定します。

cp file1.txt file2.txt file3.txt /path/to/destination/

このコマンドは、file1.txtfile2.txtfile3.txtを指定したディレクトリにコピーします。

2. バックアップの作成

-bオプションを使用すると、上書きする前にバックアップを作成できます。

cp -b file.txt /path/to/destination/

このコマンドは、file.txtをコピーする際に、既存のファイルがあればそのバックアップを作成します。

3. タイムスタンプの保持

-pオプションを使用すると、元のファイルのタイムスタンプを保持しながらコピーできます。

cp -p file.txt /path/to/destination/

このコマンドは、file.txtをコピーし、元のファイルのタイムスタンプを保持します。

4. 特定の拡張子のファイルをコピー

シェルのワイルドカードを使用して、特定の拡張子を持つファイルを一度にコピーすることも可能です。

cp *.txt /path/to/destination/

このコマンドは、カレントディレクトリ内のすべての.txtファイルを指定したディレクトリにコピーします。

5. コピーの進行状況を表示しながら

pvコマンドと組み合わせることで、コピーの進行状況を視覚的に確認できます。

pv file.txt | cp /path/to/destination/

このコマンドは、file.txtをコピーしながら進行状況を表示します。

これらの応用的な使い方をマスターすることで、cpコマンドをさらに効果的に活用できるようになります。

cpコマンドの使用例

cpコマンドはさまざまなシチュエーションで使用されます。

以下に具体的な使用例をいくつか紹介します。

1. 単一ファイルのコピー

特定のファイルを別の名前でコピーする基本的な例です。

cp report.txt report_backup.txt

このコマンドは、report.txtreport_backup.txtとしてコピーします。

2. ディレクトリの再帰的コピー

ディレクトリ全体をコピーする場合、-rオプションを使用します。

cp -r project/ project_backup/

このコマンドは、projectディレクトリをproject_backupとして再帰的にコピーします。

3. 上書き確認付きのコピー

上書きする際に確認を求める場合、-iオプションを使用します。

cp -i file.txt /path/to/destination/

このコマンドは、file.txtを指定したディレクトリにコピーする際、既存のファイルがあれば上書きするか確認します。

4. 複数ファイルのコピー

複数のファイルを一度にコピーすることも可能です。

cp file1.txt file2.txt /path/to/destination/

このコマンドは、file1.txtfile2.txtを指定したディレクトリにコピーします。

5. 特定の拡張子のファイルをコピー

特定の拡張子を持つファイルをまとめてコピーする例です。

cp *.jpg /path/to/destination/

このコマンドは、カレントディレクトリ内のすべての.jpgファイルを指定したディレクトリにコピーします。

6. ファイルの属性を保持してコピー

ファイルの属性を保持しながらコピーする場合、-pオプションを使用します。

cp -p file.txt /path/to/destination/

このコマンドは、file.txtをコピーし、元のファイルのタイムスタンプやパーミッションを保持します。

これらの使用例を参考にすることで、cpコマンドをさまざまな状況で効果的に活用できるようになります。

cpコマンドの注意点

cpコマンドを使用する際には、いくつかの注意点があります。

これらを理解しておくことで、意図しないデータの損失やエラーを防ぐことができます。

以下に主な注意点をまとめました。

1. 上書きのリスク

  • cpコマンドは、デフォルトでは既存のファイルを上書きします。

上書きされると元のファイルは失われるため、重要なファイルをコピーする際は注意が必要です。

  • 上書き確認を行うためには、-iオプションを使用することをお勧めします。

2. ディレクトリの再帰的コピー

  • ディレクトリをコピーする際は、必ず-rオプションを指定する必要があります。

指定しないと、エラーメッセージが表示されます。

  • 再帰的コピーを行うと、サブディレクトリやその中のファイルもすべてコピーされるため、コピー先のディレクトリの容量に注意が必要です。

3. パーミッションの変更

  • コピーしたファイルのパーミッションが元のファイルと異なる場合があります。

特に、-pオプションを使用しないと、元のファイルの属性(パーミッションやタイムスタンプなど)が保持されません。

  • ファイルの属性を保持したい場合は、-pオプションを使用することをお勧めします。

4. シンボリックリンクの扱い

  • cpコマンドは、シンボリックリンクをコピーする際に注意が必要です。

デフォルトでは、リンク先のファイルがコピーされます。

  • シンボリックリンクをそのままコピーしたい場合は、-Pオプションを使用します。

5. 大量のファイルコピー

  • 大量のファイルをコピーする場合、処理に時間がかかることがあります。

進行状況を確認したい場合は、-vオプションを使用するか、pvコマンドと組み合わせると良いでしょう。

これらの注意点を理解し、適切にcpコマンドを使用することで、データの損失やエラーを防ぎ、効率的にファイルやディレクトリを管理できるようになります。

まとめ

この記事では、cpコマンドの基本的な使い方から応用的な利用法、注意点まで幅広く解説しました。

特に、ファイルやディレクトリを効率的にコピーするためのさまざまなオプションや使用例を紹介し、実際の操作に役立つ情報を提供しました。

これを機に、cpコマンドを活用してファイル管理をよりスムーズに行ってみてください。

関連記事

Back to top button