touch コマンド
目的
ファイルのアクセス時刻と変更時刻を更新します。
構文
touch [ -a ] [ -c ] [ -m ] [ -f ] [ -r RefFile ] [ Time | -t Time | -d
date_time] { File ... | Directory ... }
注: この構文が適用できるようになるのは、AIX® オペレーティング・システムにおいて UNIX03 モードが有効になっていない場合に限られます。
touch [-a c m f] [-r ref_file | -t time | -d date_time ] file... | Directory
注: この構文が適用できるようになるのは、UNIX03 モードが有効になっている場合に限られます。
AIX オペレーティング・システムで UNIX03 モードを有効にするには、XPG_SUS_ENV 環境変数の値を ON に設定する必要があります。
説明
touch コマンドは、Directory パラメーターで指定された各ディレクトリー内の、File パラメーターで指定された各ファイルのアクセス時刻と修正時刻を更新します。Time 変数の値を指定しなければ、touch コマンドは現在の時刻を使用します。存在しないファイルを指定した場合は、 -c フラグで指定しない限り、 touch コマンドがその名前のファイルを作成します。
touch コマンドからの戻りコードは、時刻を修正できなかった (存在しなかったファイル、および作成されなかったファイルを含む) ファイル数です。
-a フラグと -m フラグは、touch コマンドで指定されていないときでもアクティブです。
フラグ
項目 | 説明 |
---|---|
-a | File 変数で指定されたファイルのアクセス時刻を変更します。-m が指定されていない限り、修正時刻は変更しません。 |
-c | ファイルがまだ存在していない場合は、 ファイルを作成しません。 この条件に関する診断メッセージは書き出されません。 |
-d Date_Time | これは、現在時刻ではなく指定の日時を使用します。
date_time 変数は、10 進フォーマット、YYYY-MM-DDThh:mm:SS[.frac][tz]、または YYYY-MM-DDThh:mm:SS[,frac][tz] で指定します。
各項目の説明は以下のとおりです。
|
-f | ファイルの読み取り許可と書き込み許可に関係なく、更新を強制的に実行しようとします。 |
-m | File の修正時刻を更新します。-a が指定されていない限り、アクセス時刻は変更しません。 |
-r RefFile | 現在時刻の代わりに、RefFile 変数で指定されたファイルの対応する時刻を使用します。 |
Time | 新しいタイム・スタンプの日付と時刻を MMDDhhmm[YY] のフォーマットで指定します。
YY の桁の値が 70 から 99 までの場合は、年号の上 2 桁は 19 であると見なされます。 YY の桁の値が 00 から 37 までの場合は、年号の上 2 桁は 20 であると見なされます。 |
-t Time | 現在時刻の代わりに指定された時刻を使用します。Time 変数は、10 進形式 [[CC]YY]MMDDhhmm[.SS] で指定されます。
|
注:
- touch コマンドは、utimenstat() サブルーチンを呼び出して、更新するファイルの変更時間とアクセス時間を変更します。 これにより、ファイルに対する書き込み許可があるにもかかわらず、実際にはファイルが存在しない場合は、フラグが使用された時点で touch コマンドが失敗することがあります。
- touch コマンドの使用時にエラー・メッセージが表示される場合は、絶対パス名 /usr/bin/touch を指定しないでください。
終了状況
このコマンドは、以下の終了値を返します。
項目 | 説明 |
---|---|
0 | コマンドは正常に実行されました。要求されたすべての変更を行いました。 |
>0 | エラーが発生しました。 |
セキュリティー
hm
RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権についての詳細情報は、「セキュリティー
」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
例
- ファイルのアクセス時刻と修正時刻を更新するには、以下のように入力します。
このコマンドは、program.c ファイルの最終アクセス時刻と最終修正時刻を現在の日付と時刻に設定します。program.c ファイルが存在しない場合は、touch コマンドはこの名前の空ファイルを作成します。touch program.c
- 新規ファイルを作成しないようにするには、以下のように入力します。touch -c program.c
- 修正時刻のみを更新するには、以下のように入力します。touch -m *.oこのコマンドは、 現行ディレクトリー内の .o 拡張子で終了するファイルの最終修正時刻のみを更新します (アクセス時刻は更新しません)。 make コマンドの結果を変更するときには、touch コマンドをこの方法でしばしば使用します。
- アクセス時刻と修正時刻を明示的に設定するには、以下のように入力します。 このコマンドは、 アクセス日付と修正日付を現在の年の 2 月 17 日 14:25 (午後 2:25) に設定します。
- 現在時刻の代わりに別のファイルのタイム・スタンプを使用するには、以下のように入力します。touch -r file1 program.cこのコマンドは、program.c ファイルに file1 ファイルと同じタイム・スタンプを設定します。
- 現在時刻ではなく、指定した時刻でファイルを更新するには、以下のように入力します。touch -t 198503030303.55 program.cこのコマンドは、program.c ファイルに 1985 年 3 月 3 日の 3:03:55 のタイム・スタンプを設定します。
ファイル
項目 | 説明 |
---|---|
/usr/bin/touch | touch コマンドが入っています。 |