【Ubuntu】ファイルの作成・タイムスタンプの更新のtouchコマンドの使い方をわかりやすく解説



- 1. touchとは
- 2. 基本的な使い方
- 2.1. 新しいファイルを作成する
- 2.2. ファイルのアクセス時間と変更時間を現在の時刻に更新する
- 3. オプション
- 3.1. 特定の時刻にタイムスタンプを設定する(-tオプション)
- 3.2. 他のファイルのタイムスタンプをコピーする(-rまたは--referenceオプション)
- 3.3. ファイルが存在しない場合に新規作成しない(-cまたは--no-createオプション)
- 3.4. アクセス時間のみ、または変更時間のみを更新する
- 3.4.1. アクセス時間のみ更新する場合(-aオプション)
- 3.4.2. 最新の変更時間のみ更新する場合(-mオプション)
- 3.5. 複数のファイルを同時に操作する
- 4. まとめ
1. touchとは
touch
コマンドは、Unix系システム(Linux、macOSなど)で使われる基本的なコマンドの一つで、主に以下の2つの用途があります。
- 新しい空のファイルを作成する
- 既存のファイルのタイムスタンプ(アクセス時間や変更時間)を更新する
2. 基本的な使い方
wslを使いながらtouchの使い方を紹介します。まず、wslのターミナルを起動をします。
2.1. 新しいファイルを作成する


touch ファイル名
実際に新しいファイルを作成してみると
touch example.txt
このコマンドを実行すると、カレントディレクトリにexample.txt
という空のファイルが作成されます。
2.2. ファイルのアクセス時間と変更時間を現在の時刻に更新する
touch ファイル名
実際に、タイムスタンプを更新すると
touch example.txt
タイムスタンプを現在の時刻に更新します。20:51から20:52に更新されていることがわかります。
3. オプション
3.1. 特定の時刻にタイムスタンプを設定する(-tオプション)
touch
コマンドを使うと、ファイルの作成日時や更新日時を変更できます。その中でも、-t
オプションを使用すると、特定の時刻を指定してタイムスタンプを設定することができます。
touch -t CCYYMMDDhhmm.ss ファイル名
タイムスタンプのフォーマット
-t
オプションを使用すると、次の形式でタイムスタンプを設定できます。
CC:世紀(例:20)
YY:年(例:23)
MM:月(01-12)
DD:日(01-31)
hh:時(00-23)
mm:分(00-59)
ss:秒(00-59、オプション)
実際に、次のコマンドは、example.txtのタイムスタンプを「2023年12月31日 23時59分59秒」に設定します。
touch -t 202312312359.59 example.txt
3.2. 他のファイルのタイムスタンプをコピーする(-rまたは--referenceオプション)
他のファイルと同じタイムスタンプを別のファイルに適用したい場合、-r
オプションを使います。このオプションを使用すると、あるファイルのタイムスタンプを別のファイルに簡単にコピーできます。
touch -r 参照ファイル名 対象ファイル名
次のコマンドは、source.txtのタイムスタンプをdestination.txtにコピーします。
touch -r example.txt destination.txt
これにより、destination.txtはexample.txtと同じ作成日時・更新日時になります。
3.3. ファイルが存在しない場合に新規作成しない(-cまたは--no-createオプション)
通常、touch
コマンドを実行すると、指定したファイルが存在しない場合、新しいファイルが作成されます。しかし、-c
オプションを使うと、ファイルが存在する場合のみタイムスタンプを更新し、存在しない場合は何も行いません。
touch -c ファイル名
次のコマンドでは、no_file.txtが存在しない場合、新しいファイルは作成されません。
touch -c no_file.txt
3.4. アクセス時間のみ、または変更時間のみを更新する
touch
コマンドでは、ファイルのアクセス時間と変更時間のいずれか一方だけを更新することも可能です。
3.4.1. アクセス時間のみ更新する場合(-aオプション)
ファイルにアクセスした時間を最新の時刻に更新します。
touch -a ファイル名
次のコマンドは、example.txtのアクセス時間を更新するものです。
touch -a example.txt # アクセス時間のみ更新
3.4.2. 最新の変更時間のみ更新する場合(-mオプション)
ファイルの内容が変更された時間を最新の時刻に更新します。
touch -m ファイル名
次のコマンドは変更時間のみを更新します。
touch -m example.txt # 変更時間のみ更新
3.5. 複数のファイルを同時に操作する
touch
コマンドは、複数のファイルを一度に指定することもできます。これにより、複数のファイルを新規作成したり、タイムスタンプをまとめて更新したりすることができます。次のコマンドは、file1.txt、file2.txt、file3.txtの3つのファイルを新規作成するか、すでに存在する場合はタイムスタンプを更新します。
touch file1.txt file2.txt file3.txt

4. まとめ
touch
コマンドはシンプルながら、新しいファイルの作成だけでなく、タイムスタンプの操作などができます。