$ touch [オプション] ファイル名 |
ファイルの時刻情報(タイムスタンプ)には、最終更新時刻、最終アクセス時刻、ステータス変更時刻の 3つが存在します。単に ls -l コマンドを実行したときに表示される時刻は、最終更新時刻です。最終アクセス時刻はファイルへ最後にアクセスした時刻、ステータス変更時刻は、chmod や chown コマンドでファイルの属性を変更した場合に更新される時刻です。
ファイルの最終更新時刻、最終アクセス時刻を変更するには、touch コマンドを使用します。なお、touch コマンドは現在時刻以外の時刻に変更することも可能です。
![]() | 最終更新時刻、最終アクセス時刻を変更する場合、touch コマンドを実行するユーザーは、そのファイルの所有者である必要はありませんが、ファイルへの書き込み権限がなければなりません。現在時刻以外に変更する場合は、ファイルの所有者でなければなりません。 |
![]() | システム関連のファイルは、時刻情報が重要となる場合もありますので touch の実行には注意が必要です。 |
オプションを指定せずコマンドを実行した場合は、最終更新時刻、最終アクセス時刻が現在時刻に更新されます。
![]() | ファイルが存在しない場合は、新規ファイルが作成されます。 |
$ touch sample.txt |
代表的なオプションを以下に示します。
表 4-4. touch コマンドのオプション
| -a | 最終アクセス時刻のみ変更します。 |
| -m | 最終更新時刻のみ変更します。 |
| -t [[CC]YY]MMDDhhmm[.ss] | 指定した時刻に最終更新時刻、最終アクセス時刻を変更します。CC(西暦上2桁)、YY(西暦下2桁)、MM(月)、DD(日)、hh(時)、mm(分)、ss(秒)の書式で指定します。 |
| -d time | time で指定した時刻にタイムスタンプを変更します。time の指定には一般的なフォーマットが使用できます。("Tue Apr 24 12:59:15 JST 2001"、"2001/4/24 12:59:15") |
例えば、sample.txt の最終更新時刻を 2001年1月1日 の 00:00:00 に変更するには、次のコマンドを実行します。
$ touch -d "2001/1/1 00:00:00" sample.txt |