Hitachi

JP1 Version 10 JP1/Advanced Shell


touchコマンド(ファイルのアクセス時刻と修正時刻を変更する)

〈このページの構成〉

形式

touch[-a][-c][-f][-m][-r パス名][-t 設定時刻パス名 ...
touch[-a][-c][-f][-m]設定時刻 パス名 ...

機能

指定したファイルのアクセス時刻と修正時刻を変更します。Windowsの場合は修正時刻だけを変更します。

引数

変更する時刻の種類

変更する時刻の種類は-aオプションまたは-mオプションで指定します。-aオプションと-mオプションの両方とも指定していない場合,または,-aオプションおよび-mオプションの両方とも指定した場合は,アクセス時刻と修正時刻の両方を変更します。ただし,Windowsの場合は,実際にはアクセス時刻は変更されません。

-a

ファイルのアクセス時刻を変更します。

-mオプションを指定しないで-aオプションを指定した場合は,アクセス時刻だけを変更し,修正時刻は変更しません。

Windowsの場合,-aオプションを指定しても実際にはアクセス時刻は変更されませんが,引数に指定した設定時刻の形式チェックと,-rオプションに指定したファイルの読み込みは実行されます。

-m

ファイルの修正時刻を変更します。

-aオプションを指定しないで-mオプションを指定した場合は,修正時刻だけを変更し,アクセス時刻は変更しません。

設定する時刻の指定

設定する時刻は,-rオプション,-tオプションまたはMMDDhhmm[YY]形式の設定時刻で設定します。これらのオプションの指定がない場合は,コマンドの実行時刻が設定されます。

-tオプションおよびMMDDhhmm[YY]形式の設定時刻に指定できる時刻の範囲は,UTC(協定世界時)の1970年1月1日0時0分0秒〜2038年1月19日3時14分7秒です。指定した時刻は,コマンド実行時のタイムゾーンによって解釈されます。タイムゾーンが日本標準時(UTC+9)の場合に指定できる時刻の範囲は,1970年1月1日9時0分0秒〜2038年1月19日12時14分7秒です。ただし,AIX,Windowsの場合,タイムゾーンが日本標準時(UTC+9)のときに指定できる時刻の上限は2038年1月19日3時14分7秒です。

タイムゾーンは環境変数TZに設定されている値が使用されます。Windowsで環境変数TZが設定されていない場合は,コントロールパネルの「日付と時刻のプロパティ」ダイアログボックスに設定されているタイムゾーンが使用されます。なお,Windowsの場合,環境変数TZに設定したタイムゾーンと「日付と時刻のプロパティ」に設定したタイムゾーンを同じ値にする必要があります。

-r パス名

ファイルに設定するアクセス時刻および修正時刻をここで指定したファイルパスから取得します。取得した時刻は,-aオプションが指定されている場合はアクセス時刻,-mオプションが指定されている場合は修正時刻として設定されます。

ディレクトリ名を指定すると,指定したディレクトリからアクセス時刻および修正時刻を取得します。

オプションを複数回指定した場合,最後に指定した値が有効になります。

-rオプションと-tオプションを両方指定した場合は,最後に指定されたオプションが有効になります。

-t 設定時刻

ファイルに設定する時刻を指定します。指定した時刻は,-aオプションが指定されている場合はアクセス時刻,-mオプションが指定されている場合は修正時刻として設定されます。

オプションを複数回指定した場合,最後に指定した値が有効になります。

-rオプションと-tオプションを両方指定した場合は,最後に指定されたオプションが有効になります。

設定時刻は次の形式で指定します。

[[CC]YY]MMDDhhmm[.SS]
CC

西暦年の上2桁を指定します。

YY

西暦年の下2桁を指定します。

CCを省略すると,CCには次の値が設定されます。

YYが69〜99の場合,CCには19が設定されます。

YYが00〜68の場合,CCには20が設定されます。

なお,CCとYYの両方の指定を省略した場合は,コマンド実行日時の西暦年が設定されます。

MM

月を01〜12の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

DD

日を01〜31の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

hh

時を00〜23の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

mm

分を00〜59の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

SS

秒を00〜61の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。秒の指定を省略した場合は00が設定されます。

なお,60〜61の値を指定して設定した場合,うるう秒への対応をしていないシステムでは,lsコマンドなどで時刻を表示すると60のときは1秒,61のときは2秒繰り上げられた時刻が表示されます。

設定時刻

ファイルのアクセス時刻,修正時刻に設定する時刻を指定します。指定した時刻は,-aオプションが指定されている場合はアクセス時刻,-mオプションが指定されている場合は修正時刻として設定されます。

-rオプションまたは-tオプションを指定した場合は,ファイル名として扱われます。

指定した時刻の桁数が8桁と10桁のどちらでもない場合はファイル名として扱われ,ファイルが存在しない場合はファイルが作成されます。

設定時刻は次の形式で指定します。

MMDDhhmm[YY]
MM

月を01〜12の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

DD

日を01〜31の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

hh

時を00〜23の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

mm

分を00〜59の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

YY

西暦年の下2桁を指定します。指定を省略した場合はコマンド実行日時の西暦年が設定されます。

なお,西暦年の上2桁には次の値が設定されます。

 YYが69〜99の場合:19

 YYが00〜68の場合:20

その他のオプション

パス名

時刻を変更するファイルのパス名を指定します。パス名は複数指定できます。

指定したパスが存在しない場合は0バイトのファイルを新規に作成します。

Windowsの場合

ディレクトリの修正時刻は変更できません。ディレクトリ名を指定するとエラーとなります。また,存在するファイルに対して修正時刻を変更する場合は,読み取り権限と書き込み権限が必要です。

UNIXの場合

新規に作成したファイルのパーミッションは,umaskに従って設定されます。ディレクトリ名を指定すると,ディレクトリのアクセス時刻,修正時刻が変更されます。

また,スーパーユーザー以外のユーザーが,存在するファイルに対してアクセス時刻や修正時刻を変更する場合は,次の権限が必要です。

  • -tオプション,またはMMDDhhmm[YY]形式の設定時刻の指定あり

    ファイルの所有者の権限が必要です。

  • -tオプション,およびMMDDhhmm[YY]形式の設定時刻の指定なし

    ファイルに対する書き込み権限が必要です。

-c

時刻を変更するファイルが存在しなかった場合,ファイルを作成しません。また,エラーメッセージは出力しません(エラー扱いとはしません)。

-f

OSが提供するtouchコマンドとの互換のためのオプションです。指定しても無視されます。

ファイルに設定するアクセス時刻と修正時刻

時刻を設定する-rオプション,-tオプション,またはMMDDhhmm[YY]形式の設定時刻と,変更する時刻の種類を指定する-aオプションまたは-mオプションの指定によって,アクセス時刻と修正時刻は次のように設定されます。

-rオプションを指定した場合

-rオプションに指定したファイルから取得した時刻は,パス名に指定したファイルの有無によって,次の表のように設定されます。

表8‒7 -rオプションを指定した場合に設定されるアクセス時刻,修正時刻

-aオプションと-mオプションの指定

パス名に指定されたファイルの有無

設定されるアクセス時刻

設定される修正時刻

Windows

UNIX

-aだけを指定

存在する

存在しない

-mだけを指定

存在する

存在しない

-a,-mの両方を指定,

または

-a,-mとも指定なし

存在する

存在しない

(凡例)

◎:-rオプションに指定したファイルの対応する時刻が設定されます。

○:コマンドの実行時刻が設定されます。

−:コマンド実行前のファイルの時刻がそのまま適用されます。

-tオプションまたはMMDDhhmm[YY]形式の設定時刻を指定した場合

-tオプションまたはMMDDhhmm[YY]形式の設定時刻で指定した時刻は,パス名に指定したファイルの有無によって,次の表のように設定されます。

表8‒8 引数に設定時刻を指定した場合に設定されるアクセス時刻,修正時刻

-aオプションと-mオプションの指定

パス名に指定されたファイルの有無

設定されるアクセス時刻

設定される修正時刻

Windows

UNIX

-aだけを指定

存在する

存在しない

-mだけを指定

存在する

存在しない

-a,-mの両方を指定,

または

-a,-mとも指定なし

存在する

存在しない

(凡例)

◎:-tオプションに指定した設定時刻,またはMMDDhhmm[YY]形式の設定時刻が設定されます。

○:コマンドの実行時刻が設定されます。

−:コマンド実行前のファイルの時刻がそのまま適用されます。

-rオプション,-tオプションおよびMMDDhhmm[YY]形式の設定時刻を指定しないとき

-rオプション,-tオプションおよびMMDDhhmm[YY]形式の設定時刻が指定されていない場合,パス名に指定したファイルの有無によって,次の表のように設定されます。

表8‒9 設定時刻の取得および指定がない場合に設定されるアクセス時刻,修正時刻

-aオプションと-mオプションの指定

パス名に指定されたファイルの有無

設定されるアクセス時刻

設定される修正時刻

Windows

UNIX

-aオプションだけを指定

存在する

存在しない

-mオプションだけを指定

存在する

存在しない

-a,-mの両方を指定,

または

-a,-mとも指定なし

存在する

存在しない

(凡例)

○:コマンドを実行した時刻

−:コマンド実行前のファイルの時刻がそのまま適用されます。

終了コード

終了コード

意味

0

正常終了。

1

エラー終了。

  • 不正なオプションを指定しました。

  • -tオプションに指定した設定時刻,MMDDhhmm[YY]形式の設定時刻が正しくありません。

  • -rオプションに指定したファイルの読み込みに失敗しました。

2

エラー終了。

  • ファイルの作成に失敗しました。

  • ファイルのアクセス時刻,修正時刻の変更に失敗しました。

  • 修正時刻を変更するファイルのパス名にディレクトリを指定しました。【Windows限定】

引数に複数のファイルが指定されているときは,後続のファイルを処理します。

注意事項

使用例