Hitachi

JP1 Version 11 JP1/Advanced Shell 


8.4.35 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‒20 -rオプションを指定した場合に設定されるファイルの最終アクセス日時,最終修正日時

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

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

設定される最終アクセス日時

設定される最終修正日時

Windows

UNIX

-aだけを指定

存在する

存在しない

-mだけを指定

存在する

存在しない

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

または

-a,-mとも指定なし

存在する

存在しない

(凡例)

◎:-rオプションに指定したファイルの対応する最終アクセス日時および最終修正日時が設定されます。

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

−:コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

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

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

表8‒21 引数に設定日時を指定した場合に設定されるファイルの最終アクセス日時,最終修正日時

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

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

設定されるファイルの最終アクセス日時

設定されるファイルの最終修正日時

Windows

UNIX

-aだけを指定

存在する

存在しない

-mだけを指定

存在する

存在しない

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

または

-a,-mとも指定なし

存在する

存在しない

(凡例)

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

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

−:コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

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

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

表8‒22 設定日時の取得および指定がない場合に設定されるファイルの最終アクセス日時,最終修正日時

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

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

設定されるファイルの最終アクセス日時

設定されるファイルの最終修正日時

Windows

UNIX

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

存在する

存在しない

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

存在する

存在しない

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

または

-a,-mとも指定なし

存在する

存在しない

(凡例)

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

−:コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

終了コード

終了コード

意味

0

正常終了。

1

エラー終了。

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

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

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

2

エラー終了。

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

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

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

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

注意事項

使用例