cpコマンドの基本!Linuxでファイルやディレクトリを簡単にコピーする方法
生徒
「Linuxでファイルをコピーしたいときは、どうすればいいですか?」
先生
「Linuxではcpコマンドを使うと、ファイルやディレクトリを簡単にコピーできます。」
生徒
「コピーって、ただ同じファイルを別の場所に作ることですか?」
先生
「そうです。Windowsでいう『コピーして貼り付け』と同じです。ただし、Linuxではターミナルで文字で命令を入力するので、より正確に操作できます。」
生徒
「初心者でも大丈夫ですか?」
先生
「もちろんです。順番に簡単な例を使って説明していきます。」
1. cpコマンドとは?
cpコマンドは、Linuxでファイルやディレクトリをコピーする基本コマンドです。元のデータを残しつつ、新しい場所や名前で同じ内容のファイルを作成できます。
Windowsで言えば、ファイルを右クリックして「コピー」と「貼り付け」をする操作と同じですが、Linuxではターミナルで文字を入力するだけで実行できます。これにより大量のファイルを効率的にコピーすることができます。
2. ファイルをコピーする基本
最も基本的な使い方は、コピー元とコピー先を指定するだけです。例えば、現在のディレクトリにあるfile1.txtをfile2.txtとしてコピーする場合は次のようにします。
cp file1.txt file2.txt
このコマンドを実行すると、file1.txtはそのまま残り、同じ内容のfile2.txtが作られます。
3. ディレクトリをコピーする方法
ディレクトリごとコピーしたい場合は、-r(または--recursive)オプションを使います。これはディレクトリ内のファイルやサブディレクトリもまとめてコピーするためのオプションです。
cp -r mydir backup_mydir
この例では、mydirというディレクトリ全体をbackup_mydirという名前でコピーしています。中に入っているファイルやフォルダもすべてコピーされます。
4. 上書きを確認しながらコピーする
コピー先に同じ名前のファイルがある場合、自動で上書きされます。安全にコピーしたい場合は-iオプションを使うと、上書き前に確認できます。
cp -i file1.txt file2.txt
cp: overwrite 'file2.txt'?
上書きするかどうかを聞いてくれるので、間違って既存のファイルを消してしまうのを防げます。
5. 複数のファイルをまとめてコピーする
複数のファイルを一度にコピーすることもできます。コピー先はディレクトリを指定します。
cp file1.txt file2.txt file3.txt backup_folder/
この例では、file1.txt、file2.txt、file3.txtの3つをbackup_folderにまとめてコピーしています。ディレクトリを指定することで、まとめて管理できます。
6. コピー時に進行状況を表示する
大きなファイルや大量のデータをコピーするときは、-v(verbose)オプションを使うと進行状況が表示されます。
cp -v file1.txt backup_folder/
'file1.txt' -> 'backup_folder/file1.txt'
コピーしたファイルの名前が順番に表示されるので、どのファイルがコピーされたか確認できます。
7. cpコマンドの応用例とポイント
コピーは単純な操作に見えますが、Linuxではいくつかポイントがあります。
- ファイルの上書きに注意:
-iオプションで確認する - ディレクトリをコピーする場合は必ず
-r - 複数ファイルをまとめてコピー:最後にコピー先のディレクトリを指定する
- 進行状況を確認:大きなファイルは
-vで確認
また、コピー元とコピー先を間違えると元のファイルに影響することもあるので、慎重に指定してください。
8. cpコマンドでよくあるエラーと対策
よくあるエラーの一つは「コピー先が存在しないディレクトリ」エラーです。この場合、コピー先のディレクトリを先に作成する必要があります。
mkdir backup_folder
cp file1.txt backup_folder/
もう一つは権限の問題です。コピー先に書き込み権限がないとコピーできません。この場合はsudoを使うか、権限を変更してからコピーします。
9. cpコマンドと似たコマンドとの違い
Linuxにはrsyncやscpなど、コピーに関連するコマンドもあります。cpはシンプルでローカルコピーに最適ですが、リモートや差分コピーはrsyncやscpが便利です。
初心者はまずcpでコピーの基本を押さえてから、必要に応じて他のコマンドも学ぶと効率的です。
10. まとめの前に覚えておきたいこと
cpコマンドは、Linuxでファイルやディレクトリを安全かつ効率的にコピーするための基本コマンドです。オプションを組み合わせることで、上書き確認、進行状況表示、ディレクトリコピーなど、さまざまな状況に対応できます。
最初は小さなファイルやディレクトリで練習して、コマンドの動きを理解することが大切です。慣れてくると、大量のファイル管理もcpだけで簡単にできるようになります。
まとめ
今回の記事では、Linuxでファイルやディレクトリをコピーするための基本コマンドであるcpコマンドについて詳しく解説しました。cpコマンドは、単純にファイルをコピーするだけでなく、ディレクトリ全体をまとめてコピーしたり、複数のファイルを一度に別のディレクトリにコピーしたりすることも可能です。また、-iオプションを使用することで上書きの確認を行い、安全にコピーを実行できる点や、-vオプションを使うことでコピーの進行状況を表示しながら作業できる点も重要です。Linuxのコマンド操作では、コピー元とコピー先を間違えないことが基本ですが、権限の設定やディレクトリの作成も含めて操作することが、安全で効率的なファイル管理につながります。
さらに、cpコマンドはローカルでのコピーに非常に便利ですが、リモート環境や差分コピーを行いたい場合にはrsyncやscpなどのコマンドも活用すると効率的です。初心者はまずcpで基本的なコピー操作に慣れ、その後に応用的なコマンドを組み合わせて使用することで、より高度なファイル管理やバックアップ作業が可能になります。ディレクトリ全体のコピーや大量のファイルコピーの際には、オプションを正しく組み合わせることが、作業ミスを防ぐポイントです。
実際のコマンド例として、単一ファイルのコピー、ディレクトリコピー、複数ファイルコピー、上書き確認付きコピー、進行状況表示付きコピーを実際に試すことで、cpコマンドの挙動を理解しやすくなります。また、コピー先ディレクトリの作成や権限の確認といった基本操作も合わせて覚えることで、Linuxでのファイル操作全般に自信を持って対応できるようになります。
このまとめでは、cpコマンドの重要ポイントとして以下を整理しました。
- ファイルコピー:
cp コピー元 コピー先 - ディレクトリコピー:
cp -r ディレクトリ名 コピー先 - 上書き確認:
cp -i コピー元 コピー先 - 複数ファイルコピー:
cp file1 file2 ... コピー先ディレクトリ - 進行状況表示:
cp -v コピー元 コピー先 - 権限やディレクトリ存在の確認が安全な操作のポイント
生徒
「先生、cpコマンドでディレクトリをコピーするにはどうすればいいですか?」
先生
「ディレクトリ全体をコピーする場合は、-rオプションをつけます。例えばcp -r mydir backup_mydirと入力すると、mydirの中身をすべてbackup_mydirにコピーできます。」
生徒
「もしコピー先に同じ名前のファイルがあったらどうなりますか?」
先生
「その場合は自動で上書きされます。間違って上書きしたくないときは-iオプションをつけると、確認メッセージが出るので安心です。」
生徒
「複数のファイルをまとめてコピーすることはできますか?」
先生
「はい、できます。コピーしたいファイルをすべて列挙して、最後にコピー先のディレクトリを指定します。例えばcp file1.txt file2.txt file3.txt backup_folder/のように入力します。」
生徒
「大きなファイルをコピーする時に進行状況を確認したいです。」
先生
「その場合は-vオプションをつけると、コピーされたファイルが順番に表示されます。これでどのファイルがコピーされたかすぐに確認できます。」
生徒
「なるほど。初心者でも順番に試せば、間違わずにファイルコピーができそうです。」
先生
「その通りです。最初は小さなファイルやテスト用のディレクトリで練習すると、安心してcpコマンドを使いこなせるようになります。」