touchコマンド~ファイルのタイムスタンプを変更する~【Linuxコマンド集】

touchコマンド~ファイルのタイムスタンプを変更する~【Linuxコマンド集】

touchはファイルのタイムスタンプを変更するコマンドです。存在しないファイル名を指定することでファイルを新規作成することもできます。

touchコマンドの基本

コマンドの基本動作

$ touch ファイル名

touchの主なオプション

短いオプション長いオプション意味
-t スタンプ「[[CC]YY]MMDDhhmm[.ss]」形式で指定した日時に変更する
-d–date=日付文字列文字列で指定した日時に変更する
-r–reference=ファイル名指定したファイルのタイムスタンプと同じ日時にする
-m最終更新日時のみ変更する(指定しない場合は、最終更新日時と最終アクセス日時が変更される)
–time=指定指定した種類の時刻を変更する。指定が「access」「atime」「use」ならばアクセス日時(「-a」相当)、「modify」「mtime」の場合は更新日時のみ変更する(「-m」相当)
-c–no-createファイルを作成しない

指定した日時に変更する

オプション -tを指定した場合は「月・日・時・分」形式で二桁で指定した日時に変更できます。
下の例では02月03日04時05分で指定しています。(年や秒も指定できます)

$ touch -t 02030405 test.txt

文字列で指定した日時に変更する

オプション -dateを指定した場合は文字列で指定した日時に変更できます。
下の例では”2012/03/04 05:06″で指定しています。(秒も指定できます)

$ touch –date=”2012/03/04 05:06″ test.txt

指定したファイルのタイムスタンプと同じ日時にする

オプション -r を指定することで指定したファイルのタイムスタンプ同じ日時になります。
下の例ではtest1.txtのタイムスタンプをtest.txtのタイムスタンプと同じにします。

$ touch -r test.txt test1.txt

最終更新日時の変更

オプション -mを指定することで最終更新日時のみ変更しています。
下の例では最終更新日時と最終アクセス日時が変更しています。

$ touch -m test.txt

ファイルを作成しない

オプション -c を指定することでtouchコマンドを使用した際に作成されるファイルの作成を抑制します。
下の例ではtouchコマンドでtest2.txtを作成しようとしていますが作成されません。

$ touch -c test2.txt

まとめ

touchコマンドはファイルのタイムスタンプを変更できます。
またファイルが存在しない場合は新規に空のファイルを作成することもできます。
touchコマンドを使用目的としては空のファイルを作成することが多いと思いますが、タイムスタンプも変更できたなーと思いだしください。

おまけ

statコマンドはファイルのステータス、つまり属性や日付などを表示するコマンドです。
「ls -l」より詳細に情報が表示されます。