Linuxを使い始めると必ずと言っていいほど出会うのが「touchコマンド」。初心者からベテランまで広く使われるコマンドですが、実際にはどんなことができるのか、改めてしっかりと解説していきたいと思います。
touchコマンドとは?

まずは基本から。touchコマンドはLinuxでファイルのタイムスタンプ(作成日や更新日)を更新したり、新しい空のファイルを作成したりするためのコマンドです。「触れる」という意味の英語の「touch」から名前がついていることからも、その機能のイメージがつきやすいですよね。
基本的な使い方
もっとも一般的な使い方は、以下のようにファイルを新しく作成することです。
touch ファイル名
たったこれだけです。このコマンドを実行すると、指定した名前の新しい空のファイルが作られます。
例えば、こんな感じですね。
touch sample.txt
これで「sample.txt」という空のファイルが作成されます。シンプルですが、とても頻繁に使う便利なコマンドです。
タイムスタンプを変更する
touchコマンドのもう一つの主な役割はファイルのタイムスタンプを更新すること。Linuxではファイルに「最終アクセス時刻(atime)」「最終変更時刻(mtime)」「最終ステータス変更時刻(ctime)」の3つのタイムスタンプが存在します。
基本的なtouchコマンドを実行すると、atimeとmtimeが現在の時刻に更新されます。具体的には以下のような感じ。
touch existing_file.txt
このようにすると、existing_file.txtというファイルのタイムスタンプが最新の時間に更新されます。ファイル自体の内容は全く変わりませんが、ファイルの編集日時を変えたいときなどに便利ですね。
オプションを使って自由自在に
touchコマンドには多くのオプションがあり、これを活用することでさらに細かい操作が可能になります。主なオプションを紹介していきましょう。
特定の日付・時刻を設定
「-t」オプションを使うことで、自分で指定した日時をファイルに設定できます。例えば、以下のように実行します。
touch -t 202404011200 sample.txt
これは、2024年4月1日12時00分という日時をファイルのタイムスタンプとして設定する例です。バックアップやテスト目的でファイルの日付を自由に変更したい場合に非常に役立ちます。
他のファイルと同じタイムスタンプを設定
また、「-r」オプションを使うと、他のファイルのタイムスタンプをコピーできます。
touch -r oldfile.txt newfile.txt
これにより、「newfile.txt」のタイムスタンプが「oldfile.txt」と全く同じになります。ファイルを整理するときなどに便利ですね。
実際の活用シーン
では実際、touchコマンドがよく使われる場面を具体的に見ていきましょう。

ログファイルや設定ファイルの作成
特にサーバー管理をしていると、空のログファイルや設定ファイルを作成する場面はよくあります。
touch /var/log/custom.log
これで新しいログファイルが簡単に準備でき、すぐに使えるようになります。
Makefileやシェルスクリプト内での使用
Makefileなどでは、ファイルの更新日時を基準にして再コンパイルするかどうかを決めます。そこでtouchコマンドで特定のファイルを「触れる」ことで再コンパイルを意図的に発生させることができます。
デプロイやCI/CDでの活用
自動デプロイなどを設定するときにもtouchコマンドは役立ちます。ファイルの更新日時を意図的に更新して、自動でジョブを走らせるトリガーとして利用できます。

touchコマンドについて使いこなせるようになろう!
まとめ
シンプルな見た目とは裏腹に、実は非常に便利で奥の深い「touchコマンド」。Linuxを使いこなすには欠かせない存在です。初心者の頃は「新しいファイルを作るためだけのコマンド」と思いがちですが、細かいオプションを活用すると、より高度なファイル操作や運用管理にも活躍します。
ぜひこれを機会に、touchコマンドを使いこなしてみてくださいね!