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

touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法

touch --referenceオプション|-rと同じく参照ファイルから時刻を設定する
touch --referenceオプション|-rと同じく参照ファイルから時刻を設定する

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

生徒

「先生、Linuxでファイルの時間(タイムスタンプ)を別のファイルと同じにしたい時って、どうすればいいですか?」

先生

「その場合はtouchコマンドの--referenceオプションを使うと便利ですよ。」

生徒

「えっ?touchって新しいファイルを作るコマンドじゃないんですか?」

先生

「実はtouchは、新しいファイルを作るだけじゃなくて、既存のファイルのタイムスタンプを変更することもできるんですよ。詳しく見ていきましょう。」

1. touch --referenceとは?

1. touch --referenceとは?
1. touch --referenceとは?

touch --referenceオプションは、あるファイルのタイムスタンプ(作成日時・更新日時)を、別の参照ファイルのものに合わせて変更できるLinuxコマンドです。--referenceの他に、短縮形の-rでも同じ動作をします。

たとえば、あるファイルを他のファイルと同じ「更新日時」にしたいとき、普通なら日時を手入力で設定しなければなりませんが、--referenceを使えば一発で完了します。

2. touch --referenceの基本構文

2. touch --referenceの基本構文
2. touch --referenceの基本構文

まずは基本的な使い方を見てみましょう。


touch --reference=参照ファイル名 対象ファイル名

これで、対象ファイルの「アクセス日時」と「更新日時」が、参照ファイルとまったく同じになります。

3. 実際にやってみよう(使用例付き)

3. 実際にやってみよう(使用例付き)
3. 実際にやってみよう(使用例付き)

では、実際のファイルを使って--referenceオプションを試してみましょう。

以下のように、2つのファイルがあるとします。


ls -l
-rw-r--r-- 1 user user  0 Sep 16 12:00 old.txt
-rw-r--r-- 1 user user  0 Sep 17 08:30 new.txt

old.txtのタイムスタンプをnew.txtにコピーしてみましょう。


touch --reference=old.txt new.txt

再度確認すると、new.txtの時刻がold.txtと同じになっていることが分かります。


ls -l
-rw-r--r-- 1 user user  0 Sep 16 12:00 old.txt
-rw-r--r-- 1 user user  0 Sep 16 12:00 new.txt

4. -rオプションとの違いは?

4. -rオプションとの違いは?
4. -rオプションとの違いは?

-rオプションは、--referenceの短縮形です。どちらを使っても動作はまったく同じです。違いは表記の長さだけです。

たとえば、次の2つのコマンドは同じ意味です。


touch --reference=old.txt new.txt
touch -r old.txt new.txt

スクリプトなどでは短く書ける-rが使われることが多いですが、初心者の方は意味が分かりやすい--referenceの方が安心かもしれませんね。

5. ファイルが存在しない場合の挙動

5. ファイルが存在しない場合の挙動
5. ファイルが存在しない場合の挙動

もし参照先のファイルが存在しなければ、エラーになります。また、対象ファイルが存在しない場合は、新規にファイルを作成し、そのタイムスタンプをコピーします。


touch --reference=old.txt newfile.txt

この例では、newfile.txtがなければ新しく作成され、old.txtと同じ時刻が設定されます。

6. 他のファイル操作コマンドとの違い

6. 他のファイル操作コマンドとの違い
6. 他のファイル操作コマンドとの違い

ここで、よく似た操作を行う他のLinuxコマンドと比較しておきましょう。

  • cp:ファイルをコピーするが、通常はタイムスタンプが更新される
  • cp -p:タイムスタンプを保持してコピーできる
  • rsync -a:ファイル属性(タイムスタンプ含む)を保持して同期できる

これらはコピー時に使うコマンドですが、touch --referenceはあくまで「既存ファイルのタイムスタンプを操作する」目的で使います。

7. ls -lでタイムスタンプを確認しよう

7. ls -lでタイムスタンプを確認しよう
7. ls -lでタイムスタンプを確認しよう

ファイルの時刻情報を確認するにはls -lコマンドを使います。


ls -l old.txt new.txt
-rw-r--r-- 1 user user 0 Sep 16 12:00 old.txt
-rw-r--r-- 1 user user 0 Sep 16 12:00 new.txt

このように、2つのファイルの日時がそろっていれば、正しくコピーできています。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法