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 コマンドは現在の時刻を使用します。 存在しないファイルを指定すると、touch コマンドは、-c フラグを指定しない限り、ファイルを作成します。
touch コマンドからの戻りコードは、時刻を修正できなかった (存在しなかったファイル、および作成されなかったファイルを含む) ファイル数です。
-a フラグと -m フラグは、touch コマンドで指定されていないときでもアクティブです。
フラグ
| 項目 | 説明 |
|---|---|
| -a | File 変数で指定されたファイルのアクセス時刻を変更します。 -m が指定されていない限り、修正時刻は変更しません。 |
| -c | ファイルがまだ存在していない場合は、 ファイルを作成しません。 この条件に関する診断メッセージは書き出されません。 |
| -d 日付と時刻 | これは、現在時刻ではなく指定の日時を使用します。 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 変数は、10 進形式 [[CC]YY]MMDDhhmm[.SS] で指定されます。
|
注:
- touch コマンドは、 utimenstat () サブルーチンを呼び出して、タッチされたファイルの変更時刻とアクセス時刻を変更します。 これにより、ファイルに対する書き込み許可があるにもかかわらず、実際にはファイルが存在しない場合は、フラグが使用された時点で touch コマンドが失敗することがあります。
- touch コマンドの使用時にエラー・メッセージを受け取った場合は、絶対パス名 /usr/bin/touch を指定しないでください。
終了状況
このコマンドは、以下の終了値を戻します。
| 項目 | 説明 |
|---|---|
| 0 | コマンドは正常に実行されました。 要求されたすべての変更を行いました。 |
| >0 | エラーが発生しました。 |
セキュリティー
hm
RBACユーザーおよびTrustedAIXユーザーに注意:このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティの特権コマンドデータベースを参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
例
- ファイルのアクセス時刻と変更時刻を更新するには、次のように入力します。
これにより、以下の最終アクセス時刻と最終変更時刻が設定されます。program.cファイルを現在の日時に変更します。 もしprogram.cファイルが存在しない場合、 touch コマンドはその名前の空のファイルを作成します。touch program.c - 新規ファイルを作成しないようにするには、次のように入力します。touch -c program.c
- 変更時刻のみを更新するには、次のように入力します。touch -m *.oこれにより、以下で終わるファイルの最終変更時刻 (アクセス時刻ではなく) が更新されます。.o現行ディレクトリー内の拡張子。 make コマンドの結果を変更するときには、touch コマンドをこの方法でしばしば使用します。
- アクセス時刻と変更時刻を明示的に設定するには、次のように入力します。これにより、アクセスおよび変更の日付が 14:25 (午後 2 時 25 分 ) 現在の年の 2 月 17 日 に設定されます。
- 現在時刻の代わりに別のファイルのタイム・スタンプを使用するには、次のように入力します。touch -r file1 program.cこれにより、program.cタイム・スタンプと同じタイム・スタンプをファイルします。file1。
- 現在時刻以外の指定時刻を使用してファイルをタッチするには、次のように入力します。touch -t 198503030303.55 program.cこれにより、program.c3:03:55 a.mのタイム・スタンプをファイルします。 1985 年 3 月 3 日です
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/touch | touch コマンドが入っています。 |