touchコマンドは、FILE...
に指定したファイルが保持している日時に関する情報を変更します。修正できる日時情報は、最終アクセス日時(最後にファイルを操作した日時)と最終更新日時(最後にファイルを更新した日時)です。指定したファイルが存在しない場合には、サイズが0のファイル(内容がないファイル)を作成します。
- ① -a
- 最終アクセス時刻を変更します。
- ② -m
- 最終更新日時を変更します。
- ③ -c
- 指定したファイルが存在しない場合に、ファイルを作成しません。
- ④ -r REF_FILE
- 「REF_FILE」で指定したファイルが保持している日時情報に変更します。
- ⑤ -t TIME
「TIME」で指定した日時に変更します。「TIME」は次の形式で指定します。
[[CC]YY]MMDDhhmm[.SS] [/dd]
この時、それぞれの文字が表す内容は以下のとおりとなります。
日時の指定方法 文字 内容 例(2004年3月3日午後5時0分0秒) CC 西暦年の上2桁 20 YY 西暦年の下2桁 04 MM 月の2桁表記 03 DD 日の2桁表記 03 hh 24時間制の時の2桁表記 17 mm 分の2桁表記 00 SS 秒の2桁表記 00 このオプションを省略すると、システム日時に変更します。
- ① FILE...
- ファイルをスペースで区切って指定します。ワイルドカードによる指定も可能です。
[takeda]$ ls -l
合計0
[takeda]$ touch f001 f002
[takeda]$ ls -l
合計0
-rw-rw-r-- 1 cmd cmd 0 4月14 23:33 f001
-rw-rw-r-- 1 cmd cmd 0 4月14 23:33 f002
存在しないファイルを指定すると、サイズが0のファイルを作成[takeda]$ touch -a f001
ファイル「f001」の最終アクセス日時を変更[takeda]$ touch -m f002
ファイル「f002」の最終更新日時を変更[takeda]$ ls -lu
合計0
-rw-rw-r-- 1 cmd cmd 0 4月14 23:38 f001
-rw-rw-r-- 1 cmd cmd 0 4月14 23:33 f002
[takeda]$ ls -l
合計0
-rw-rw-r-- 1 cmd cmd 0 4月14 23:33 f001
-rw-rw-r-- 1 cmd cmd 0 4月14 23:39 f002
[takeda]$
[takeda]$ ls
f001 f002
[takeda]$ touch -c f003
オプション「-c」を指定すると、存在しないファイルを作成しない[takeda]$ ls
f001 f002
[takeda]$
lsコマンド
会社内の教育でコマンドを教える時、「touchコマンドはどんな時に使うのですか?」という質問を受ける時があります。単に日付を変えるだけ、それもなぜ変える必要があるのかわからない、というのです。いろいろな場面で使用できると思いますが、筆者はいろいろなサービスを定義するために必要となる空ファイル(中身のないファイル)の作成や、日付が新しくないと動作しないコマンド(プログラム作成時に使いますが詳細は別の機会に)で多用します。このように一見何に使うのかわからないコマンドもありますが、そのコマンドの作成者は必要にせまられて作っているのでしょうし、長いUNIXの歴史の中で今なお残っていることでも利用されているということがわかると思います。本書はビギナーの方を対象としていますからすべてのコマンドは解説していませんが、本書でひと通りのコマンドを使えるようになりましたら是非ほかのコマンドにもチヤレンジしてみて下さい。
本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.