kazmax - Linux で自宅サーバー

touch - コマンド (プログラム) の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. POSIX オプション
  5. POSIX 詳細
  6. GNU 詳細
  7. GNU オプション
  8. GNU 標準オプション
  9. 環境変数
  10. 準拠
  11. 注意

名前

touch - ファイルのアクセス時刻と修正時刻を変更する

書式

touch [-acm][-r ref_file |-t time ] file...
今後使われなくなる書式:
touch [-acm][ ugly_time ] file...
GNU 版:
touch [-acfm] [-r file ] [-t time ] [-d time ] [--time={atime,access,use,mtime,modify}] [--date= time ] [--reference= file ] [--no-create] [--help] [--version] [--] file...

説明

touch コマンドは指定したそれぞれの file のアクセス時刻、修正時刻またはいずれかを変更する。
特に指定がない場合は現在時刻に変更する。 -r オプションを使った場合、 ref_file の時刻を使い変更し、-t オプションを使った場合には time で指定した時刻に変更する。
-a と -m オプションのいずれも指定しないか、 同時に指定すると両方の時刻 (訳注:アクセス時刻と修正時刻) を変更する。 -a と -m オプションのいずれか 1 つを指定すると、 アクセス時刻もしくは修正時刻のいずれかのみを変更する。 ファイルがまだ存在しない場合は、-c オプションが指定されていない限り、 (モード 0666 を umask で修正したアクセス権にして、空のファイルを) 作成する。

POSIX オプション

-a
file のアクセス時刻のみを変更する。
-c
file を作成しない。
-m
file の修正時刻を変更する。
-r ref_file
ref_file で指定したファイルの時刻を使い変更する。
-t time
time で指定した時刻を使い変更する。 引き数は次のような明確な意味を持つ 10 進数の形式で指定する。
    [[CC]YY]MMDDhhmm[.SS]


CC を指定しない場合、年 CCYY は 1969-2068 の範囲となる (訳注: YY=69-99 の場合 CC=19、YY=00-68 の場合 CC=20 と見做される)。 YY を指定しない場合には、現在の年が使われる。 SS を指定しない場合、0 として見做される。 うるう秒を参照できるように 0-61 の範囲で指定できる。 結果の時刻は環境変数 TZ により指定されたタイムゾーンでの時刻となる。 結果の時刻が 1970 年 1 月 1 日以前になった場合、エラーとなる。

POSIX 詳細

2 つ目の形式では ugly_time が時刻なのかファイルを指定する引き数なのかはっきりしないという不利な面がある。 -r もしくは -t オプションを指定せず、少なくても 2 つの引き数を指定し、 最初の引き数が 8 桁もしくは 10 桁の 10 進数である場合には時刻として見做す。 ugly_time の書式は MMDDhhmm[yy] で、 yy は 69-99 の範囲で指定し 1969 年から 1999 年 を表す。 yy が指定されない場合は現在の年を表す。
この書式は今後使われない。 現在では touch は、オプションのない 8 桁または 10 桁の数字の引き数を、 'MMDDhhmm[YY]' という書式の日付ではなく、ファイル名として認識する。

GNU 詳細

最初の file"-t" に対する有効な引き数で、かつ -d , "-r" オプションで時刻を指定していない場合、 または "-t" オプションと `--' オプションが指定されていない場合、 その引き数はファイル名としてではなく、その他のファイルの時刻として解釈される。

touch コマンドでファイルのアクセス時間や修正時間を現在時刻に変更する場合、 実行するユーザーはファイルの所有者でなくても、 そのファイルに対する書き込みアクセス権があれば良い。 そうでない場合には、そのファイルの所有者である必要がある。

GNU オプション

"-a, --time=atime, --time=access, --time=use"
アクセス時刻のみ変更する。
"-c, --no-create"
指定したファイルが存在しない場合、作成しない。
-d, --date= time
現在時刻の代わりに、 time で指定した時刻を使う。 月の名前や、タイムゾーン、`am' や `pm'、等を含めることができる。
"-f"
無視される; BSD 版の   touch (1) との互換性のために用意されている。
"-m, --time=mtime, --time=modify"
修正時刻のみを変更する。
-r file , --reference= file
現在時刻の代わりに、参照用に指定した file の時刻を使う。

GNU 標準オプション

"--help"
標準出力に使用方法のメッセージを出力して正常終了する。
"--version"
標準出力にバージョン情報を出力して正常終了する。
"--"
オプションリストを終了する。

環境変数

変数 TZ が明示的に与えられた時刻を解釈するのに使われる。 変数 LANG, LC_ALL, LC_CTYPE, LC_MESSAGES が通常の意味を持つ。

準拠

POSIX 1003.2 では -t オプションの引き数の書式が GNU での実装で使われているものとは違っている。

注意

このページでは fileutils-4.1 パッケージでの touch コマンドについて説明している。 その他のバージョンでは少し違いがあるかもしれない。 修正や追加は aeb@cwi.nl, aw@mail1.bet1.puv.fi, ragnar@ragnar-hojland.com 宛てにメールで連絡してほしい。 プログラムのバグについては bug-fileutils@gnu.org へ報告してほしい。