ホーム > ファイル・ディレクトリ管理 > touch

touch: ファイルのアクセス時刻と更新時刻の変更、またはファイルの新規作成

touchコマンドは、ファイルのアクセス時刻(access time)と更新時刻(modification time)を変更したり、存在しないファイルを新しく作成したりする際に使用されます。特に`-m`オプションはファイルの更新時刻のみを更新する際に便利で、ビルドシステムやスクリプトでファイルのタイムスタンプを操作するのに広く活用されています。

概要

touchはファイルのタイムスタンプを現在の時刻に更新するか、指定されたファイルが存在しない場合は空のファイルを作成します。デフォルトではアクセス時刻と更新時刻の両方を変更しますが、様々なオプションを通じて特定の時刻のみを変更したり、他のファイルの時刻を参照して設定したりすることができます。

主な機能

  • ファイルのアクセス時刻(access time)の更新
  • ファイルの更新時刻(modification time)の更新
  • 存在しないファイルの作成
  • 他のファイルのタイムスタンプの参照
  • 特定の年月日時刻にタイムスタンプを設定

主なオプション

touchコマンドの主なオプションは、ファイルのタイムスタンプを精密に制御するために使用されます。

時刻の変更と制御

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`touch` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

touchコマンドの様々な使用例を通じて、ファイルのタイムスタンプを効果的に管理する方法を学びます。

新しい空のファイルを作成

touch new_file.txt

存在しない`new_file.txt`ファイルを作成します。ファイルが既に存在する場合は、タイムスタンプのみが現在の時刻に更新されます。

ファイルの更新時刻のみを更新

touch -m document.txt

`document.txt`ファイルの更新時刻のみを現在の時刻に変更し、アクセス時刻はそのまま維持します。

ファイルのアクセス時刻のみを更新

touch -a report.log

`report.log`ファイルのアクセス時刻のみを現在の時刻に変更し、更新時刻はそのまま維持します。

特定の時刻にタイムスタンプを設定

touch -t 202301011030.00 old_file.txt

`old_file.txt`ファイルのアクセス時刻と更新時刻を2023年1月1日10時30分00秒に設定します。

他のファイルの時刻を参照

touch -r source.txt target.txt

`target.txt`ファイルのアクセス時刻と更新時刻を`source.txt`ファイルと同じように設定します。

ファイルが存在しない場合は作成せず、タイムスタンプのみ更新を試みる

touch -c non_existent.txt

`non_existent.txt`ファイルが存在しない場合は作成せず、もし存在する場合はタイムスタンプのみを更新します。

ヒントと注意点

touchコマンド使用時の役立つヒントと注意点です。

活用ヒント

  • **スクリプトおよびビルドシステム:** `make`のようなビルドシステムは、ファイルの更新時刻を基準に再ビルドするかどうかを決定します。`touch`を使用して特定のファイルの更新時刻を強制的に更新することで、再ビルドをトリガーすることができます。
  • **ログファイル管理:** ログファイルのアクセス時刻を更新して最近読み込まれたことを示したり、更新時刻を変更して特定のイベント発生時刻を記録したりすることができます。
  • **一時ファイルの作成:** 簡単な一時ファイルを作成する際に`touch tempfile.tmp`のように使用して、素早く空のファイルを作成できます。

注意点

  • **権限:** ファイルを修正または作成するディレクトリに書き込み権限が必要です。そうでない場合、「Permission denied」エラーが発生します。
  • **タイムゾーン:** `-t`オプションで時刻を指定する際、システムのタイムゾーン設定によって結果が異なる解釈をされる可能性があるため注意が必要です。
  • **`-c`オプションの理解:** `-c`オプションは「create」ではなく「no create」を意味します。つまり、ファイルがなければ作成しないということです。デフォルトでは`touch`はファイルがなければ作成します。

同じカテゴリのコマンド