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

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オプションとは?

-pオプションを使うと、元ファイルのパーミッション(アクセス権)・更新日時・作成日時などを保持したままコピーすることができます。

たとえば以下のように使います。


cp -p data.txt backup/

このようにすれば、コピー後のファイルも元ファイルとまったく同じ情報を持った状態になります。

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
ファイル・ディレクトリ操作
touch --versionオプションの使い方を完全ガイド!初心者でもわかるバージョン確認方法
New2
ファイル・ディレクトリ操作
find -deleteオプションを完全解説!初心者でもできるLinuxファイル削除の基本
New3
ファイル・ディレクトリ操作
mv --helpオプションの使い方|Linuxでmvコマンドの使い方やオプションを確認する方法
New4
ファイル・ディレクトリ操作
rm --versionオプションの使い方!Linuxでバージョン情報を確認する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
basenameの--helpオプションを使ってヘルプ表示!オプション一覧でLinuxコマンドを理解しよう
No.4
Java&Spring記事人気No4
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!