touch (UNIX)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > touch (UNIX)の意味・解説 

touch (UNIX)

(Touch (command) から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/24 15:49 UTC 版)

ナビゲーションに移動 検索に移動

touchは、標準的なUnixプログラムであり、ファイルの最終アクセス時刻と最終変更時刻を変えるために使用される。また、新規の空ファイルを作成するためにも使用される。

歴史

touchユーティリティはVersion 7 AT&T UNIXにおいて最初にリリースされた。GNU Core Utilitiesにバンドルされているtouchのバージョンは、ポール・ルビン、アーノルド・ロビンズ、ジム・キングドン、デビッド・マッケンジーおよびスニル・シャーマによって作成された[要出典]

仕様

Single UNIX Specification(SUS)において、touchはファイルの最終アクセス時刻または最終変更時刻またはその両方を変えるものであると定義されている。ファイルは引数のパス名で指定される。指定したファイルが存在しない場合は、ファイルを新規に作成して、最終アクセス時刻と最終変更時刻を指定した時刻に設定する。時刻を指定しない場合には、touchは現在時刻を使用する。

使用法

SUSにおいて、次のようなオプションが指定されている:

-a、最終アクセス時刻のみを変更
-c、ファイルが存在しない場合でも、新規に作成せず、状況を報告しない
-m、最終変更時刻のみを変更
-r filefileと同じ最終アクセス時刻と最終変更時刻を使用
-t time、以下に記載するようなフォーマットで指定した最終アクセス時刻と最終変更時刻を使用

時刻は[[cc]yy]MMDDhhmm[.ss]というフォーマットで指定される。ここで、MMは月を示す2桁の数字、DDは日を示す2桁の数字、hhは時間を示す2桁の数字、mmは分を示す2桁の数字である。オプションのssは秒を示す2桁の数字、ccは西暦の上2桁を示す数字、yyは西暦の下2桁を示す数字である。

オプションで引数に時刻を指定しない場合は、最終アクセス時刻と最終変更時刻として現在の日付と時刻を使用する。この仕様は、ファイルの内容を変更せずに、ファイルの最終アクセス時刻と最終変更時刻を最新にすることに相当する。この動作は、ある種の状況の下では(以下の例に示すように)望ましい仕様と考えられる。

他のUNIXおよびUnix系のオペレーティングシステムにおいては、これ以外のオプションを追加している。例えば、GNU touchは、-dというオプションを追加している。このオプションは、上記のオプションで指定する以外のフォーマットで時刻を指定する。

touchの最も簡単なユースケース

# touch myfile.txt

である。この例では、touchはmyfile.txtの内容を変更せずに、myfile.txtのタイムスタンプのみをコンピューターの現在の日付と時刻に更新する。

次の例は、なぜこのような動作が望ましいのか示す。一般に、作成中のソフトウェアプロジェクトではプログラムをmakeコマンドでビルドすることが多い。その際に、makefileを変更して、makeコマンドで再ビルドする必要があると仮定する。しかし、作業の直後にmakeが以下のような報告をすることがある:

# make
make: nothing to be done for `all'

これはソースコードファイルが(ターゲットより以前に)更新されていたからで、touchコマンドでファイルの更新をシミュレートする必要がある。そのようにすると、以下のようにmakeを走らせて、プログラムをリコンパイルできるようになる:

# touch project.c
# make

以下の例は、ファイルの日付と時刻を変更する方法を示す:

# touch -t 200701310846.26 index.html
# touch -d '2007-01-31 8:46:26' index.html
# touch -d 'Jan 31 2007 8:46:26' index.html
#
  (* Win32(XP)コマンドプロンプトの場合は、シングルクォート(')の
     代りにダブルクォート(")を使用せよ。
     そうしないと、"touch: Invalid date format"というエラーが
     発生するであろう。)

上記の3つの例は同値である。すなわち、index.htmlの日付と時刻を2007年1月31日の午前8時46分26秒に設定する。

cp, grep, chmodなどのコマンドとは異なり、touchはコマンドを再帰的にサブディレクトリに適用する再帰的なスイッチ(-r または -R または両方)を持っていない(2008年8月時点)。しかし、以下のようにすれば適用できる:

# find . -exec touch {} \;

この方法は比較的、実行速度が遅い。これは以下のようにすれば高速化できる:

# find . | xargs touch

ファイル名またはサブディレクトリ名に空白が含まれる場合は、以下のようにするとよい:

# find . -print0 | xargs -0 touch

他のオペレーティングシステム

touchユーティリティと似た動作をおこなうプログラムが、Microsoft WindowsMac OSなどの他のオペレーティングシステムでも使用可能となっている。

関連項目

外部リンク

マニュアル




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「touch (UNIX)」の関連用語

touch (UNIX)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



touch (UNIX)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのtouch (UNIX) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS