Linux

touchコマンドでファイルのタイムスタンプを変更する

ファイルのタイムスタンプを変更するコマンド

存在しないファイルに対して実行すると大きさ0のファイルを作成してくれる。

ディレクトリのタイムスタンプも変更できる。

オプション

  • -a
    ファイルの更新時刻は変更せずにアクセス時刻だけを変更する
  • -c, –no-create
    ファイルが存在しない場合はファイルの作成をしない
  • –help
    ヘルプ表示
  • -r
    このオプションで指定するファイルと同じタイムスタンプに変更する

  • -t 日時
    現在日時ではなく任意の日時に指定できる。日時のフォーマットは YYYYMMDDHHmm[.ss] など。

  • –version
    バージョン表示

— というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、 – で始まるファイル名を扱いたい場合に使うとよい。

HOWTO

ファイルのタイムスタンプを任意の日時に変更するには

-t で日時を指定できる。

タイムスタンプを現在日時に変更

touch hoge.txt

タイムスタンプを特定の日時に変更

touch -t 1309061200.00 hoge.txt

日時は以下のいずれかの書式。

YYYYMMDDHHmm
YYYYMMDDHHmm.ss
YYMMDDHHmm
YYMMDDHHmm.ss
MMDDHHmm
MMDDHHmm.ss

日時を設定するdateコマンドは "2013/09/04 12:17:00" のような書式で、 touchコマンドとは異なる。

ファイルのタイムスタンプを別のファイルのタイムスタンプと同じに変更するには

-r というオプションで他のファイルを指定すると、そのファイルと同じタイムスタンプにしてくれる。

$ touch target.txt -r source.txt

参考

https://hydrocul.github.io/wiki/commands/touch.html

コメントを残す