
新Linux入門|ファイルをコピーしたい?Linuxのcpコマンドで簡単に複製しよう
Linuxで作業していると、「このファイルを別の名前で保存したい」「設定ファイルをバックアップしておきたい」という場面がよくありますよね。
そんなときに活躍するのが、cpコマンド です。
cp(copy)はその名の通り、「ファイルやディレクトリをコピーする」ための基本コマンドです。
Windowsでいう“コピー&ペースト”のような操作を、ターミナル上で行えるイメージです。
ここでは、AlmaLinux 9.6 環境を例に、cpコマンドの仕組み・使い方・便利なオプションをわかりやすく解説します。

📄cpコマンドとは?
cp コマンドは、ファイルやディレクトリを複製するためのコマンドです。
元のファイルを指定し、コピー先を指定するだけで簡単に複製できます。
| 項目 | 内容 |
|---|---|
| コマンド名 | cp |
| 主な用途 | ファイルやディレクトリのコピー |
| 実行対象 | 通常ファイル、ディレクトリ(-rオプションが必要) |
| 上書き挙動 | 既存ファイルを上書き(-iで確認可能) |
| コピー範囲 | 同一ディレクトリ内・他の場所・外部ディスクなどにも対応 |
💡 ポイント
コピー元とコピー先は、相対パスでも絶対パスでも指定可能です。
また、root権限が必要なシステムファイルも、sudo cp でコピーできます。
⚙️ cpコマンドの書式
cp [オプション] コピー元 コピー先| 引数 | 説明 |
|---|---|
| コピー元 | 複製したいファイルやディレクトリの名前またはパス |
| コピー先 | 複製を作成するファイル名またはディレクトリ名 |
💬 たとえば
[suzuki@AlmaLinux ~]$ cp file1.txt file2.txtこのコマンドは、file1.txt の内容を file2.txt という新しいファイルとしてコピーします。
file2.txt が存在する場合は、上書きされます。
🛠️ cpコマンドの主なオプション
| オプション | 説明 |
|---|---|
| -r | ディレクトリを再帰的(recursive)にコピー。サブディレクトリも含めて複製します。 |
| -i | 上書きの際に確認を求める(interactive)。誤操作防止に便利。 |
| -u | コピー元が新しい場合のみ上書き(update)。バックアップ更新時などに便利。 |
| -v | コピーの過程を詳細に表示(verbose)。処理状況を確認したいときに便利。 |
| -a | ファイル属性(パーミッション、タイムスタンプ、リンクなど)を保持(archiveモード)。 |
| -b | 上書き時にバックアップを自動作成(backup)。安全にコピーを行いたいときに有効。 |
💡 おすすめ組み合わせ
バックアップを取りながら安全にコピーしたいときは
cp -av file1.txt backup/とすれば、属性を保持したまま詳細出力付きでコピーできます。
🖥️ 使用例で理解しよう!
① ファイルを別名でコピー
[suzuki@AlmaLinux ~]$ cp file1.txt file2.txt→ file1.txt の内容を file2.txt としてコピーします。
同じ内容を持つファイルが2つできます。
② ディレクトリを再帰的にコピー
[suzuki@AlmaLinux ~]$ cp -r dir1 dir2→ dir1 内の全ファイル・サブディレクトリを、dir2 にまとめてコピーします。
もし dir2 が存在しなければ自動的に作成されます。
③ 上書き時に確認を求める
[suzuki@AlmaLinux ~]$ cp -i file1.txt file2.txt
cp: 'file2.txt' を上書きしますか? y→ -i を付けると、上書きの際に確認メッセージが表示されます。
うっかり上書きを防ぐ安全な方法です。
④ 更新されたファイルのみコピー
[suzuki@AlmaLinux ~]$ cp -u file1.txt file2.txt→ file1.txt の方が新しい場合のみコピーします。
バックアップフォルダの差分更新に便利です。
⑤ 属性を保持してコピー
[suzuki@AlmaLinux ~]$ cp -a config/ config_backup/→ 所有者、パーミッション、タイムスタンプなどの情報をすべて保持してコピーします。
システム設定ファイルのバックアップなどに最適です。
🧠 実行例:出力の確認
[suzuki@AlmaLinux ~]$ ls -l
-rw-r--r-- 1 suzuki suzuki 30 10月 28 22:15 file1.txt
[suzuki@AlmaLinux ~]$ cp -v file1.txt file2.txt
'file1.txt' -> 'file2.txt'
[suzuki@AlmaLinux ~]$ ls -l
-rw-r--r-- 1 suzuki suzuki 30 10月 28 22:15 file1.txt
-rw-r--r-- 1 suzuki suzuki 30 10月 28 22:16 file2.txt📘 解説
- -v オプションにより、コピーの詳細が表示されました。
- ls -l の結果から、コピー後の file2.txt は同じ内容・同じサイズです。
📂 cpコマンドでできること・できないこと
| 項目 | 内容 |
|---|---|
| できること | ファイルやディレクトリの複製、属性保持コピー、バックアップ生成など |
| できないこと | 異なるファイルシステム間でのメタデータ完全複製、ネットワーク越しのコピー( scp を使用) |
| 注意点 | コピー先に同名ファイルがあると上書きされる(-i で確認可) |
✅ まとめ:cpコマンドで安心・簡単にコピーしよう!
cpコマンドは、Linuxのファイル操作の基本中の基本です。
単純なコピーから、バックアップ・ディレクトリの複製まで、さまざまな場面で活躍します。
💡 覚えておきたいポイント
- cp コピー元 コピー先 のシンプルな構文
- -r でディレクトリをまとめてコピー
- -i で上書き防止、-u で差分更新
- -a で属性を保持して完全コピー
ファイルを守りながら安全に複製できるよう、
cpコマンドをしっかり使いこなしましょう!
