cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
生徒
「Linuxでファイルをコピーしたいんですが、どうやればいいですか?」
先生
「Linuxではcpというコマンドを使えば、簡単にコピーできますよ。」
生徒
「それってWindowsでいう『Ctrl+C』と同じですか?」
先生
「考え方は似ていますね。でも、Linuxではキーボードの操作ではなく、cpコマンドでコピー先を指定して実行します。具体的に見てみましょう!」
1. cpコマンドとは?
cpコマンドは、Linuxでファイルやディレクトリ(フォルダ)をコピーするための基本的なコマンドです。copyの略で、原本を残したまま、別の場所や名前で同じデータを複製できます。
たとえば、ある資料ファイルをコピーして別名で保存したいときや、他のフォルダに同じ内容を保存したいときに使います。
2. ファイルをコピーする基本の使い方
ファイルをコピーするには、次のような形式でcpコマンドを使います。
cp コピー元ファイル コピー先ファイル
たとえば、memo.txtというファイルをbackup.txtとしてコピーしたい場合は、以下のように入力します。
cp memo.txt backup.txt
このコマンドを実行すると、元のmemo.txtはそのままで、内容が同じbackup.txtが作られます。
3. ディレクトリをコピーするには?
ディレクトリ(フォルダ)をコピーするには、-r(もしくは--recursive)オプションを使います。このオプションは中にあるファイルやサブフォルダをすべてまとめてコピーするために必要です。
cp -r コピー元ディレクトリ コピー先ディレクトリ
例えば、projectというフォルダをproject_backupとしてコピーするには、次のようにします。
cp -r project project_backup
この操作により、project内のすべてのファイルとサブディレクトリがproject_backupに複製されます。
4. よく使うcpコマンドのオプション
cpコマンドには、いくつか便利なオプションがあります。よく使われるものを紹介します。
-r:ディレクトリを再帰的にコピー(必須)-i:上書き時に確認メッセージを表示(安全)-v:コピーしているファイル名を表示(進行がわかる)-u:コピー先より新しいファイルだけコピー(更新のみ)-p:タイムスタンプなどの情報を保持してコピー
たとえば、次のように使えば、安全に進行状況を見ながらディレクトリをコピーできます。
cp -riv photos photos_backup
5. 上書きの確認がない点に注意
Linuxのcpコマンドは、基本的に確認なしで上書きしてしまいます。大切なファイルを失わないためにも、-iオプションをつけて、削除や上書きの確認を行う習慣をつけましょう。
cp -i important.txt backup.txt
cp: overwrite 'backup.txt'?
このように聞かれたときに「y」を入力すれば上書きされます。
6. ワイルドカードを使って複数ファイルをコピー
複数のファイルをまとめてコピーしたいときは、ワイルドカード(*や?)を使うと便利です。
たとえば、拡張子が.jpgのファイルをすべてコピーするには、次のようにします。
cp *.jpg images/
これは「カレントディレクトリにあるすべてのjpg画像をimagesフォルダにコピーする」という意味になります。
7. cpとrsyncの違い
コピーに関連したコマンドとしてrsyncというものもありますが、cpは基本的なコピー、rsyncは差分コピー(変更された部分だけコピー)に適しています。
通常のファイルコピーやバックアップの入門としては、まずはcpコマンドを理解することが大切です。
まとめ
cpコマンドはLinuxのファイル操作の中でも特に使用頻度が高く、日常的な作業から開発環境の構築、バックアップ管理まで幅広く活用できる重要なコマンドです。記事で紹介したように、cpはファイルやディレクトリを複製するための基本的な手段であり、原本を残したまま必要な場所へコピーできる点が大きな魅力です。とくに複数ファイルの管理やフォルダ構造を維持したコピーを行う場合、ディレクトリの再帰コピーに必要な-rオプションや、安全に操作するための-iオプション、進行状況を確認できる-vオプションなど、自分の作業スタイルに合わせて柔軟に組み合わせられる点から、初心者にも扱いやすいコマンドとして知られています。
また、コピー先にすでにファイルが存在している場合は上書きされるため、Linuxに慣れないうちは誤操作で大切なファイルを失ってしまう可能性もあります。その対策として、-iオプションを用いることで事前確認を行い、安全性を高める方法も覚えておくと良いでしょう。さらに、ワイルドカード(*や?)を活用することで、特定の拡張子を持つファイルをまとめてコピーしたり、整理されたディレクトリを一括で扱うことができるなど、効率的な作業につながる機能が豊富に備わっています。
cpコマンドの実践例で理解を深めよう
例えば、特定の拡張子を持つ画像ファイルをまとめてコピーしたい場合には次のように実行できます。
cp *.jpg images/
上記の例では、カレントディレクトリにあるすべての.jpgファイルをimagesフォルダにコピーしています。ワイルドカードを使ったファイル操作は、画像整理やログ管理など幅広い用途で役立つため、初心者のうちから慣れておくことが大切です。また、コピー中の状態を確認したければ-vオプションを追加すると、次のようにどのファイルが複製されたか画面に表示されます。
cp -v memo.txt backup.txt
'memo.txt' -> 'backup.txt'
このように進行状況を確認しながら操作できることで、トラブル発生時にも原因を追いやすくなり、より安心して作業を進めることができます。ディレクトリごとコピーしたい場合には、必ず-rを付けて実行する必要があります。もし付け忘れると、エラーになったり、意図しない動作につながる可能性があるため注意しましょう。
ディレクトリコピーの例
プロジェクトフォルダをまるごとバックアップするときは次のようにします。
cp -r project project_backup
この操作によって、フォルダ内のファイルやサブフォルダを含めて完全なコピーが作成されます。開発作業の途中で安心してバックアップを取りたいときには欠かせない方法です。
さらに、コピー済みのファイルと比較して新しいものだけをコピーする-uオプションや、タイムスタンプや権限を維持したままコピーする-pオプションを使うことで、目的に応じた高度なファイル管理が可能になります。こうした機能を知ることで、日々の作業効率は大きく向上します。
生徒:「cpって思っていたより奥が深いですね。ファイルだけじゃなくてフォルダもコピーできるのは便利です!」
先生:「その通りですよ。特に-rオプションはディレクトリコピーの基本なので覚えておきましょう。」
生徒:「上書きされるのが怖いときは-iを使えば確認できるんですよね?」
先生:「そうです。大切なファイルを守りたいときは必ず使いましょう。逆に、作業効率を上げたいときには-vで進行確認するのも良い方法です。」
生徒:「ワイルドカードでまとめてコピーできるのも助かります。画像整理が一気に楽になりそうです。」
先生:「しっかり理解できていますね。cpコマンドはLinuxの基礎ですが、使いこなすことでファイル管理がとても快適になりますよ。」