カテゴリ: Linuxコマンド集 更新日: 2025/10/09

cp -aオプションとは?Linuxで属性付きコピーをするアーカイブモードの基本

cp -aオプション|属性も含めてアーカイブモードでコピーする
cp -aオプション|属性も含めてアーカイブモードでコピーする

先生と生徒の会話形式で理解しよう

生徒

「Linuxのcpコマンドで-aオプションって見かけたんですけど、これは何をするものですか?」

先生

-aはアーカイブモードと言って、ただコピーするだけじゃなくて、ファイルの属性やパーミッション、タイムスタンプなんかも全部そっくりそのままコピーしてくれるオプションなんですよ。」

生徒

「なるほど!ただのコピーとは違うってことなんですね。詳しく教えてください!」

先生

「それでは、実際にcp -aの使い方やポイントを見ていきましょう。」

1. cp -aとは?アーカイブモードの意味

1. cp -aとは?アーカイブモードの意味
1. cp -aとは?アーカイブモードの意味

cp -aは、Linuxでファイルやディレクトリを「そのままの状態」でコピーするアーカイブモードです。「archive(アーカイブ)」のaが由来です。

このオプションを使うことで、以下のような情報も含めてコピーされます:

  • ファイルの所有者
  • パーミッション(読み書き実行の権限)
  • タイムスタンプ(作成日時・更新日時)
  • シンボリックリンク
  • ディレクトリ構造

つまり「ただ中身だけコピーする」のではなく、「状態も含めて完全コピー」するイメージです。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

cp -aの基本的な書き方は以下のとおりです。


cp -a コピー元 コピー先

たとえば、data_folderというフォルダをbackup_dataとして完全コピーしたい場合はこう書きます。


cp -a data_folder backup_data

この操作で、data_folderの中のファイルやディレクトリ、属性情報まですべてそっくりbackup_dataに複製されます。

3. cp -aとcp -rの違い

3. cp -aとcp -rの違い
3. cp -aとcp -rの違い

cp -rもディレクトリを再帰的にコピーできますが、属性まではコピーされません

たとえばcp -rでコピーすると、所有者や作成日時などが変わってしまうことがあります。

一方でcp -aは、-rに加えて、-d(リンク保持)や-p(属性保持)などをまとめたオプションなので、より完全なバックアップが可能です。

4. 属性とは何か?初心者向けに解説

4. 属性とは何か?初心者向けに解説
4. 属性とは何か?初心者向けに解説

Linuxでの「属性」とは、次のような情報のことを指します。

  • 所有者:誰のファイルなのか(例:user1)
  • パーミッション:誰が読み書きできるか(例:rw-r--r--)
  • タイムスタンプ:ファイルがいつ作られたか、いつ更新されたか
  • シンボリックリンク:別のファイルへの参照(ショートカットのようなもの)

cp -aを使えば、こうした属性もすべて維持されます。

5. コピー先に既にファイルがあるときは?

5. コピー先に既にファイルがあるときは?
5. コピー先に既にファイルがあるときは?

cp -aはコピー先に同じ名前のファイルがあると確認なしで上書きします。重要なデータを守るためには、-i(確認)をつけるのもおすすめです。


cp -ai config config_backup

このようにすると、「上書きしてもいいですか?」と聞かれるようになります。

6. 実際に属性を比較してみよう

6. 実際に属性を比較してみよう
6. 実際に属性を比較してみよう

コピー前後で属性が同じかどうかはls -lコマンドで確認できます。


ls -l original.txt
-rw-r--r-- 1 user user 1234  9月 15 12:00 original.txt

cp -a original.txt copied.txt

ls -l copied.txt
-rw-r--r-- 1 user user 1234  9月 15 12:00 copied.txt

このように、パーミッションや更新日時なども元のままコピーされていることが確認できます。

7. バックアップ用途でのおすすめ

7. バックアップ用途でのおすすめ
7. バックアップ用途でのおすすめ

cp -aは、システム設定ファイルのバックアップや、重要なデータの完全コピーに最適です。

例:ホームディレクトリを外付けHDDにコピーしたいとき


cp -a ~/Documents /mnt/usb_backup/

このようにすれば、フォルダ構成も属性もすべて保持したまま、バックアップが取れます。

関連記事:
カテゴリの一覧へ
新着記事
touch --no-createオプションの使い方を完全ガイド!初心者でもわかるファイルの新規作成防止法
basenameのSUFFIX指定で拡張子を除いてファイル名を取得する方法を解説!初心者向けLinuxコマンド講座
mv -tオプションの使い方|移動先ディレクトリを先に指定する便利な方法
lsコマンドの-rオプション|逆順(降順)でファイルを並べる方法を初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.2
Java&Spring記事人気No2
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
No.3
Java&Spring記事人気No3
rm -Rオプションとは?初心者でもわかる再帰的にディレクトリを削除する方法
No.4
Java&Spring記事人気No4
Linuxコマンドpwd --help解説|オプション一覧を表示して使い方を確認する方法