はじめに
Linuxで新しいファイルを空の状態で作成したり、既存のファイルの最終アクセス日時や更新日時(タイムスタンプ)を操作したりする際に使用するのが、touchコマンドです。
touchコマンドは、一見シンプルですが、その用途は多岐にわたります。特に、ファイルのタイムスタンプを意図的に更新する機能は、makeコマンドなどを使ったソフトウェアのビルド処理や、バックアップシステムの動作確認において非常に重要です。
LPICレベル1の試験では、特に新規ファイルの作成とタイムスタンプを特定の日時に設定するためのオプションの理解が問われます。この記事では、touchコマンドの基本的な使い方から、コマンド名の由来、必須オプション、そしてLPIC対策として押さえるべきポイントまでを詳しく解説していきます。
touchコマンドの基本
まずは、touchコマンドの基本的な使い方と、その2つの主要な役割を確認しましょう。
touchコマンドの書式
touch [オプション] ファイル名...
- ポイント:
- 指定したファイルが存在しない場合:その名前でサイズがゼロの新しいファイルを作成します。
- 指定したファイルが存在する場合:そのファイルのタイムスタンプ(更新日時とアクセス日時)を現在時刻に更新します。
主要オプション一覧
| オプション | 意味 | 補足 |
-a | 最終アクセス日時のみを変更する | access |
-m | 最終更新日時のみを変更する | modification |
-t | タイムスタンプを現在時刻ではなく、指定した日時に設定する | timestamp |
-c | ファイルが存在しない場合、新しいファイルを作成しない | no-create |
コマンド名の由来:なぜ「touch」なのか?
touchコマンドの「touch」は、英語の “touch”(触れる、接触する) という動詞に由来します。
このコマンドの元々の機能は、ファイルを「軽く触れる」ことで、ファイルの内容を変更せずにタイムスタンプ(最終更新日時など)だけを現在時刻に更新することでした。この「触れる」という行為がコマンド名として定着しました。
必須オプションの詳細と実践例
touchコマンドのオプションを、主要オプション一覧の順番に沿って詳しく見ていきます。
1. -a (access) オプション:アクセス日時のみ変更
意味: 既存のファイルの最終アクセス日時(そのファイルが最後に読み込まれた時刻)のみを現在時刻に更新し、最終更新日時(ファイルの内容が変更された時刻)は変更しません。
実践例:
stat file.txt #touch -a実行前のファイルアクセス日時を確認
touch -a file.txt
stat file.txt #touch -a実行後のファイルアクセス日時を確認

Accessの項目で17:22から17:23に変わっていることが確認できます。
オプションの由来: aはaccess(アクセス)の頭文字です。
2. -m (modification) オプション:更新日時のみ変更
意味: 既存のファイルの最終更新日時(ファイルの内容が最後に変更された時刻)のみを現在時刻に更新し、最終アクセス日時は変更しません。
実践例:
stat file.txt #touch -m実行前の最終更新日時を確認
touch -m file.txt
stat file.txt #touch -m実行後の最終更新日時を確認

Modifyの項目で17:23から17:26に変わっていることをが確認できます。
オプションの由来: mはmodification(変更、修正)の頭文字です。
3. -t (timestamp) オプション:特定の日時を指定
意味: タイムスタンプを現在時刻ではなく、指定した任意の日時に設定します。日付時刻の指定には、CCYYMMDDhhmm.ss(世紀、年、月、日、時、分、秒)という形式を使用します。
実践例:
stat file.txt #touch -t実行前の最終アクセス日時、最終更新日時を確認
touch -t 202601010900.00 file.txt
stat file.txt #touch -t実行後の最終アクセス日時、最終更新日時を確認

注: 秒(.ss)は省略可能です。
オプションの由来: tはtimestamp(タイムスタンプ)の頭文字です。
4. -c (no-create) オプション:ファイルを作成しない
意味: 通常、touchは指定されたファイルが存在しない場合に新しいファイルを作成します。-cオプションを指定すると、ファイルが存在しない場合は何もしません(エラーにもなりません)。
実践例:
touch -c non_existing_file.txt

-cオプションを付与することで、non_existing_file.txtが作成されませんでした。
オプションの由来: cはno-create(作成しない)の頭文字と関連しています。
LPIC対策としてのポイント
touchコマンドに関するLPICの出題傾向として、以下の点を確実に押さえておきましょう。
- 2つの役割: 新規ファイルの作成(ファイルが存在しない場合)と、タイムスタンプの更新(ファイルが存在する場合)の2つの機能を持つこと。
- タイムスタンプの操作: 最終アクセス日時 (
-a) と最終更新日時 (-m) のどちらを操作するか、または両方を操作するかを理解すること。 -tオプションの書式:CCYYMMDDhhmm.ssという厳密な日時形式を理解しておくこと。ls -lとls -lu:ls -lで表示されるのは最終更新日時(-mで操作)であり、最終アクセス日時を確認するにはls -luオプション(またはstatコマンド)が必要であること。
まとめ
今回は、ファイルの新規作成とタイムスタンプの更新を行うtouchコマンドについて、その基本的な使い方からコマンド名の由来、そして特に重要なオプションまでを詳しく解説しました。touchコマンドは、ファイルのメタデータ(付随情報)を操作する上で非常に便利なツールです。
LPICレベル1の試験対策としては、-aと-mによる更新日時の制御、そして任意の日時を指定する-tオプションの書式をしっかりとマスターしておきましょう。



コメント