Linux – cpコマンドの使い方 – ファイル/ディレクトリのコピー
cpコマンドは、Linuxでファイルやディレクトリをコピーするためのコマンドです。
基本的な使い方は「cp [オプション] コピー元 コピー先」です。
ファイルをコピーする場合、単純に cp file1 file2 とするとfile1をfile2にコピーします。
ディレクトリをコピーする場合は、オプション -r (再帰的コピー)を使用し、 cp -r dir1 dir2 とします。
オプション -i は上書き確認、 -v は詳細表示を行います。
cpコマンドとは
cpコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるファイルコピーのためのコマンドです。
このコマンドを使用することで、指定したファイルやディレクトリを別の場所にコピーすることができます。
cpは copy の略で、非常にシンプルながらも強力な機能を持っています。
主な特徴
- ファイルのコピー: 単一または複数のファイルを指定した場所にコピーできます。
- ディレクトリのコピー: ディレクトリ全体を再帰的にコピーすることも可能です。
- オプションの豊富さ: コピー時に上書き確認や進行状況の表示など、さまざまなオプションを指定できます。
cpコマンドの基本的な使い方
cpコマンドの基本的な使い方は非常にシンプルです。
以下に、基本的な構文といくつかの使用例を示します。
基本構文
cp [オプション] コピー元 コピー先| コマンド | 説明 |
|---|---|
cp file1.txt file2.txt | file1.txtをfile2.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.txt、file2.txt、file3.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.txtをreport_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.txtとfile2.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コマンドを活用してファイル管理をよりスムーズに行ってみてください。