Unixコマンド/touch
touch †
機能 †
touchコマンドは、指定したファイルが存在しない場合は、空のファイルを作成します。
指定したファイルが存在する場合は、ファイルのアクセス時刻、修正時刻を変更します。
UNIXでは3種類のタイムスタンプがあります。⇒タイムスタンプの種類
形式 †
touch [オプション] ファイル名
オプション †
-a アクセス時刻のみを変更 -c 指定したファイルが存在しない場合は、ファイルを作成しない。 -m 修正時刻のみを変更 -r file fileが持つ時刻に変更する。 -t time 指定した時刻に変更。timeは[[CC]YY]MMDDhhmm[.SS]形式で指定
タイムスタンプの種類 †
タイムスタンプ | 概要 | 説明 |
atime | アクセス時間 | ファイルにアクセスした時間。ページャでファイルを読んだり、エディタで内容を変更した時に更新される。lsコマンドでは-luオプションで確認可能。 |
ctime | 作成時間 | ファイルが作成された時間ではない。エディタで内容を変更した時、アクセス権限を変更した時、所有者の変更を行った時に更新される。lsコマンドでは-lcオプションで確認可能。 |
mtime | 更新時間 | エディタで内容を変更した時に更新される。lsコマンドでは-lオプションで確認可能。 |
コマンド例 †
■空ファイルを作成する。
$ touch test.txt $ ls -l test.txt -rw-r--r-- 1 matsui Admin 0 Mar 9 19:41 test.txt
■ファイルの更新時間のみ変更する。
$ ls -l test.txt -rw-r--r-- 1 matsui Admin 0 Mar 9 19:41 test.txt $ touch -a test.txt $ ll total 0 -rw-r--r-- 1 matsui Admin 0 Mar 9 19:41 test.txt ↑更新時刻は変更されていない $ touch -m test.txt $ ll total 0 -rw-r--r-- 1 matsui Admin 0 Mar 9 19:44 test.txt ↑更新時刻が19時44分に変更
■指定した時刻に更新時刻を変更する
$ ll test.txt -rw-r--r-- 1 matsui Admin 0 Mar 9 19:44 test.txt $ touch -t 0101010000 test.txt ↑2001年1月1日に変更してみる。 $ ll test.txt -rw-r--r-- 1 matsui Admin 0 Jan 1 2001 test.txt ↑変更された。