Linuxコマンドに「touch」(タッチ)があります。このtouchコマンドの使い方を解説します。
touchコマンドとは
touchコマンドは、一言で説明すると、中身の無いファイルを新規に作成したり、既に存在するファイルのタイムスタンプを更新するコマンドです。
touchコマンドで中身の無いファイルを新規に作成する場合の活用方法
例えば、あるプログラムは、中身の無いログファイルが指定のディレクトリに存在していないと起動しない場合に、指定のディレクトリへ中身の無いログファイルを指定してtouchコマンドでファイルを新規作成します。
また、別の活用例としては、システムテストする前に大量のダミーファイルを作成することで、より本番稼働時の環境に近づけたテストが可能となります。
touchコマンドで既に存在するファイルのタイムスタンプを更新する場合の活用方法
例えば、プログラムをリリース前に、プログラムのバージョンをタイムスタンプで揃えたい場合にtouchコマンドで全てのプログラムファイルを同一のタイムスタンプにすれば、その後に改修されたプログラムファイルであるか否かの区別がつきます。
スポンサーリンク
touchコマンドの基本的な使い方
touchコマンドの基本的な使い方を解説します。
カレントディレクトリに存在しないファイルを新規に作成する
カレントディレクトリ(今居るディレクトリ)に存在しないファイル名を指定すると、そのファイル名のファイルが新規に作成されます。
> touch ファイル名
例えば、カレントディレクトリに存在しない「data.dat」という中身の存在しないファイルを新規に作成したい場合は、下記の通りコマンド入力します。
> touch data.dat
カレントディレクトリに存在するファイルのタイムスタンプを現在時刻に更新する
カレントディレクトリに存在するファイル名を指定すると、そのファイルのタイムスタンプが、コマンドを入力した最新時刻に更新されます。
> touch ファイル名
例えば、カレントディレクトリに「file.dat」というファイルが存在する場合に、「file.dat」のタイムスタンプをコマンドを入力した最新時刻に更新したい場合は、下記の通りコマンド入力します。
> touch file.dat
指定した日時へタイムスタンプを書き換える
「-t」オプションと、「変更したい年月日時刻(秒含む)」の文字列を付与すると、「変更したい年月日時刻(秒含む)」の通りにタイムスタンプを書き換えます。
> touch -t 202310011200.30 ファイル名
上記コマンドを実行すると、ファイル名のタイムスタンプは「2023年10月1日12時00分30秒」に変更されます。
指定ファイルの最終更新日付を更新せずに、最後にアクセスした日時のみ書き換える
「-a」オプションを付与すると、指定ファイルに最後にアクセスした日時のみをコマンドを入力した最新時刻に書き換えます。
> touch -a ファイル名
指定したファイル名のファイルが存在しなくても新規作成を行わないようにする
「touch ファイル名」のコマンドラインだと指定したファイル名のファイルが新規に作成されますすが、オプションに「-c」を付与すると、指定したファイル名のファイルが存在しなくても新規作成を行わないように指定します。
> touch -c ファイル名
シンボリックリンクに設定されたタイムスタンプを書き換える
ファイルやディレクトリの実体が無いシンボリックリンクは、単純にtouchコマンドを実行してもタイムスタンプは更新できません。
「-h」オプションを付与すると、シンボリックリンクのリンク先である実体ファイル側でなく、リンク元であるシンボリックリンクのファイルのタイムスタンプを書き換えます。
> touch -h シンボリックリンクのファイル名
対象ファイルを最後に更新した日時を書き換える
「-m」オプションを付与すると、指定ファイルを最後に更新した日時のみをコマンドを入力した最新時刻に書き換えます。
> touch -m ファイル名
指定したファイルと同じタイムスタンプに書き換える
「-r」オプションを付与すると、指定ファイルと同じタイムスタンプ日時に書き換えます。
> touch -r ファイル名(更新したいファイル) ファイル名(更新せずタイムスタンプを参照されるファイル)