Unixコマンド/touch の変更点

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • 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
 ↑変更された。