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

cp -pオプションの使い方|元ファイルのパーミッションやタイムスタンプを保持する方法を初心者向けに解説!

cp -pオプション|元ファイルのパーミッションやタイムスタンプを保持する
cp -pオプション|元ファイルのパーミッションやタイムスタンプを保持する

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

生徒

「Linuxでファイルをコピーしたら、元のファイルと日時が違ってました…。なんでですか?」

先生

「それは、通常のコピーだと更新日時アクセス権が変わってしまうからです。-pオプションを使えば、元の情報を保ったままコピーできますよ。」

生徒

「そんな便利なオプションがあるんですね!詳しく知りたいです!」

先生

「それでは、cp -pオプションの使い方を一緒に見ていきましょう。」

1. cpコマンドとは?

1. cpコマンドとは?
1. cpコマンドとは?

LinuxやUnix系システムで最も頻繁に使われるコマンドの一つがcpコマンドです。cpは「copy」の略で、その名の通りファイルやディレクトリ(フォルダ)の複製を作成するために使用します。

Windowsでいうところの「右クリックしてコピー & 貼り付け」という操作を、キーボード入力だけで素早く行うイメージです。基本的な書式は「cp コピー元 コピー先」と記述します。

例えば、プログラミング未経験の方でも分かりやすい例として、大切なメモが書かれた「memo.txt」というファイルを、「backup」という名前のディレクトリの中に保存するケースを考えてみましょう。


mkdir backup
cp memo.txt backup/
ls backup/
memo.txt

このように、簡単な操作でファイルを複製できます。しかし、実はこの通常のcpコマンドには注意点があります。単にコピーを実行するだけでは、コピーした瞬間の時刻が「新しい更新日時」として上書きされ、元のファイルが持っていた「いつ作成されたか」という大切な記録や、読み書きの制限(パーミッション)といった属性情報がリセットされてしまうのです。

この問題を解決し、ファイルの「家系図」や「性格」をそのまま引き継ぐのが、次に解説する-pオプションの役割です。

2. cp -pオプションとは?

2. cp -pオプションとは?
2. cp -pオプションとは?

cp -pオプションの「p」は、preserve(保存する・保持する)の頭文字をとったものです。このオプションを付けてコピーを実行すると、ファイルの「中身」だけでなく、そのファイルが持っている「属性情報(メタデータ)」も丸ごと引き継ぐことができます。

通常、ファイルをコピーすると「コピーした瞬間の時刻」が新しい作成日時として記録されますが、これでは「元々いつ作られたファイルなのか」が分からなくなってしまいます。-pを使うことで、そうした大切な履歴を守ることができるのです。

未経験の方でもイメージしやすいよう、具体的な例を見てみましょう。例えば、「2020年に作成した大事な思い出の写真」を新しいフォルダにコピーする場合を想定します。


cp -p memory.jpg backup/
ls -l backup/memory.jpg
-rw-r--r-- 1 user user 204800  1月  1  2020 memory.jpg

このように、-pオプションを指定してコピーすれば、コピー先のファイルでも日付が「2020年」のまま維持されます。「ファイルの性格(権限)」や「誕生日の記録(タイムスタンプ)」をそのままコピー先に引っ越しさせる、というイメージで覚えておくと分かりやすいでしょう。

後ほど詳しく解説しますが、このオプションはバックアップ作業や、サーバーの設定ファイルを書き換える前の「控作成」において、プロの現場でも必須のテクニックとして使われています。

3. 実際に動作を確認してみよう

3. 実際に動作を確認してみよう
3. 実際に動作を確認してみよう

まず元ファイルのパーミッションと更新日時を見てみます。


ls -l data.txt
-rw-r--r-- 1 user user 100  9月 10 12:00 data.txt

次に通常のコピー(-pなし)をして確認してみましょう。


cp data.txt backup/
ls -l backup/data.txt
-rw-r--r-- 1 user user 100  9月 16 10:30 backup/data.txt

このように、更新日時が変わってしまっているのが分かります。

では次に、-pを使ってコピーしてみます。


cp -p data.txt backup/
ls -l backup/data.txt
-rw-r--r-- 1 user user 100  9月 10 12:00 backup/data.txt

更新日時まで完全に保持された状態でコピーされたことが確認できます。

4. -pで保持される情報とは?

4. -pで保持される情報とは?
4. -pで保持される情報とは?

cp -pを使うと、以下の情報が元のファイルからコピーされます。

  • パーミッション(アクセス権)
  • タイムスタンプ(更新日時・作成日時)
  • 所有者(ユーザーとグループ) ※ただし一般ユーザーでは変更できない場合あり

これにより、バックアップやシステム移行時に正確な情報を保ったままコピーできるため、信頼性が高まります。

5. -pオプションが役立つ場面

5. -pオプションが役立つ場面
5. -pオプションが役立つ場面

次のようなシチュエーションで-pオプションはとても有効です。

  • 設定ファイルやログファイルをバックアップしたいとき
  • タイムスタンプ順で処理されるファイルを正確にコピーしたいとき
  • アクセス権が重要なファイル(実行ファイルやスクリプトなど)をコピーするとき

このような場合、-pを忘れると動作に影響が出ることもあるので、注意しましょう。

6. 他のオプションとの組み合わせ

6. 他のオプションとの組み合わせ
6. 他のオプションとの組み合わせ

-pは、他のオプションと組み合わせることでさらに便利になります。

  • -v(verbose): コピーしたファイル名を表示する
  • -i(interactive): 上書き前に確認する
  • -r(recursive): ディレクトリ全体を再帰的にコピー

たとえば、設定ファイルを上書き確認付きでコピーしつつ、元の情報も保持したいときは次のようにします。


cp -ipv config.ini backup/

このようにすれば、安全に元の状態を保ったままコピーできます。

7. 一般ユーザーと所有者の注意点

7. 一般ユーザーと所有者の注意点
7. 一般ユーザーと所有者の注意点

-pを使っても、一般ユーザーではファイルの所有者情報(ユーザーやグループ)までコピーできないことがあります。

これはシステムのセキュリティ制限によるもので、root権限が必要な場合もあります。

たとえば、/etc以下のファイルをコピーする場合などは、sudo cp -pのように管理者権限で実行する必要があります。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
New2
ファイル・ディレクトリ操作
cp -pオプションの使い方|元ファイルのパーミッションやタイムスタンプを保持する方法を初心者向けに解説!
New3
ファイル・ディレクトリ操作
find -permオプションの使い方を完全解説!初心者でもできるパーミッション検索
New4
テキスト・データ処理
cat -bオプション|空行を除いて行番号を付ける
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのmkdirコマンドとは?初心者でもわかる新しいディレクトリ作成の基本