PR
更新:2024/09/30

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

はるか
はるか
「touch」コマンドを知ってる?
ふゅか
ふゅか
もちろんよ!新しいファイルを作ったり、ファイルのタイムスタンプを更新するのに使うコマンドね♪

 

1. touchとは

touchコマンドは、Unix系システム(Linux、macOSなど)で使われる基本的なコマンドの一つで、主に以下の2つの用途があります。

  1. 新しい空のファイルを作成する
  2. 既存のファイルのタイムスタンプ(アクセス時間や変更時間)を更新する

2. 基本的な使い方

wslを使いながらtouchの使い方を紹介します。まず、wslのターミナルを起動をします。

2.1. 新しいファイルを作成する

はるか
はるか
新しいファイルを作る時は、ただ「touch ファイル名」って打つだけだ。
ふゅか
ふゅか
そうそう、例えば「touch example.txt」って打つと、カレントディレクトリに空のファイルが作成されるの。
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

ふゅか
ふゅか
複数のファイルを一度に操作するのも簡単よ。「touch file1.txt file2.txt file3.txt」みたいに複数指定すれば、一気に作成やタイムスタンプの更新ができるの。

4. まとめ

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

PR