新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コマンドをしっかり使いこなしましょう!