Unixコマンド/touch の変更点
*&size(15){''touch''}; [#ia1dfbbf]
**''機能'' [#n112c9ad]
touchコマンドは、指定したファイルが存在しない場合は、空のファイルを作成します。~
指定したファイルが存在する場合は、ファイルのアクセス時刻、修正時刻を変更します。~
UNIXでは3種類のタイムスタンプがあります。⇒[[タイムスタンプの種類>#time]]~
**''形式'' [#qa799dd2]
touch [オプション] ファイル名
**''オプション'' [#c8584cee]
-a アクセス時刻のみを変更
-c 指定したファイルが存在しない場合は、ファイルを作成しない。
-m 修正時刻のみを変更
-r file fileが持つ時刻に変更する。
-t time 指定した時刻に変更。timeは[[CC]YY]MMDDhhmm[.SS]形式で指定
**''タイムスタンプの種類''&aname(time); [#h56283e1]
|タイムスタンプ|概要|説明|
|atime|アクセス時間|ファイルにアクセスした時間。ページャでファイルを読んだり、エディタで内容を変更した時に更新される。lsコマンドでは-luオプションで確認可能。|
|ctime|作成時間|ファイルが作成された時間ではない。エディタで内容を変更した時、アクセス権限を変更した時、所有者の変更を行った時に更新される。lsコマンドでは-lcオプションで確認可能。|
|mtime|更新時間|エディタで内容を変更した時に更新される。lsコマンドでは-lオプションで確認可能。|
**''コマンド例'' [#j79b4c44]
■空ファイルを作成する。
$ 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
↑変更された。