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

touch -dオプションの使い方を完全ガイド!初心者でもわかる日付指定のタイムスタンプ操作

touch -dオプション|任意の日付を指定してタイムスタンプを設定する
touch -dオプション|任意の日付を指定してタイムスタンプを設定する

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

生徒

「Linuxのtouchコマンドって、ファイルの更新日時を変えられるんですよね?」

先生

「その通りです。特に-dオプションを使えば、好きな日付に設定できますよ。」

生徒

「えっ、今じゃなくて、例えば去年の日付にもできるんですか?」

先生

「はい、任意の日付に設定できます。ファイルの履歴を整えたいときなどにも便利ですよ。」

1. touchコマンドの基本とは?

1. touchコマンドの基本とは?
1. touchコマンドの基本とは?

touchコマンドは、Linux(リナックス)環境で使われる基本的なコマンドで、主にファイルの作成更新日時(タイムスタンプ)の変更に使われます。ファイル操作の中でも非常に使用頻度が高いため、初心者にとってはまず覚えておきたいコマンドの一つです。

たとえば、以下のように実行すると:


touch log.txt

ファイルlog.txtが存在しない場合は新しく作られ、存在する場合はその更新日時だけが今の時刻に変更されます。

2. -dオプションの意味と用途

2. -dオプションの意味と用途
2. -dオプションの意味と用途

-dオプションは、任意の日付や時間を指定してファイルの更新日時(タイムスタンプ)を変更するためのオプションです。たとえば「昨日の日時」や「2024年1月1日12時00分」など、自由な日時形式を指定することができます。

実行例:


touch -d "2024-01-01 12:00:00" log.txt

このコマンドにより、log.txtの更新日時が「2024年1月1日12時00分」に設定されます。

3. 実際の使用例と動作確認

3. 実際の使用例と動作確認
3. 実際の使用例と動作確認

それでは、実際に-dオプションを使った具体例を見てみましょう。

(1)ファイルを作成して日時を設定


touch -d "2022-12-31 23:59:59" year_end.txt
ls -l year_end.txt
-rw-r--r-- 1 user user 0 12月 31 23:59 year_end.txt

ファイルyear_end.txtが存在しなければ作成され、指定した日時に更新されます。

(2)既存ファイルのタイムスタンプだけ変更


touch example.txt
touch -d "2023-07-15 10:00" example.txt
ls -l example.txt
-rw-r--r-- 1 user user 0  7月 15 10:00 example.txt

このように、すでにあるファイルにも自由に日時を設定できます。

4. 対応する日時の書式とは?

4. 対応する日時の書式とは?
4. 対応する日時の書式とは?

-dオプションでは、以下のような自然な形式の日時が使用可能です:

  • "YYYY-MM-DD HH:MM:SS"(例:"2024-01-01 09:00:00"
  • "yesterday"(昨日)
  • "next Monday"(次の月曜日)
  • "2 days ago"(2日前)
  • "now"(現在)

たとえば、「一昨日」に設定したい場合は、以下のように記述します。


touch -d "2 days ago" report.txt

5. よく使うケースと活用例

5. よく使うケースと活用例
5. よく使うケースと活用例

touch -dオプションは、以下のような場面でとても便利です。

  • 過去のバックアップファイルの整合性を保ちたいとき
  • スクリプトでログファイルの日時を操作したいとき
  • 開発テストで特定日時の動作を再現したいとき

(例)ログファイルを昨日の日時に設定


touch -d "yesterday" access.log

(例)特定の日付でスクリプトテスト


#!/bin/bash
for i in {1..3}
do
  filename="test_$i.txt"
  touch "$filename"
  touch -d "2023-03-0$i 15:00:00" "$filename"
done

このように、ループ処理と組み合わせれば複数のファイルにそれぞれ異なる日時を設定できます。

6. -tオプションとの違い

6. -tオプションとの違い
6. -tオプションとの違い

-dと似たような機能を持つオプションに-tがありますが、これは日時を特殊な数字形式([[CC]YY]MMDDhhmm[.ss])で指定する方法です。

たとえば、-tで同じ日時を指定するには以下のようになります:


touch -t 202401010900.00 log.txt

-dの方が自然な書き方で使えるため、初心者には-dの方がおすすめです。

関連記事:
カテゴリの一覧へ
新着記事
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オプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法