touch コマンドとは?
touch
コマンドは、空のファイルを作成したり、既存ファイルの最終アクセス時刻・修正時刻を更新するためのコマンドです。
シェルスクリプトやログ管理、タイムスタンプ制御など様々な場面で利用されます。
基本構文
touch [オプション] ファイル名
使用例と出力サンプル
空のファイルを作成
$ touch sample.txt
ファイルが存在しない場合は新規作成されます。
すでに存在するファイルのタイムスタンプだけを更新
$ touch existing.txt
よく使うオプション
オプション | 説明 |
---|---|
-c | ファイルが存在しない場合は作成しない |
-a | 最終アクセス時刻のみ更新 |
-m | 最終修正時刻のみ更新 |
-t [[CC]YY]MMDDhhmm[.ss] | 指定日時に更新(例: -t 202504221430.00 ) |
-r file | 指定ファイルと同じ時刻に更新(参照元として使用) |
タイムスタンプの指定(-t)
$ touch -t 202504221430.00 file.txt
このコマンドは file.txt
のタイムスタンプを 2025年04月22日 14時30分00秒
に変更します。
他ファイルの時刻をコピー(-r)
$ touch -r source.txt target.txt
target.txt
のタイムスタンプを source.txt
と同一にします。
ファイルが存在しない場合に作成したくない(-c)
$ touch -c not_exist.txt
not_exist.txt
が存在しない場合は何もしません。
複数ファイルをまとめて作成
$ touch file1.txt file2.txt file3.txt
複数のファイルを一度に作成またはタイムスタンプ更新します。
よくあるエラーと対処
エラー | 原因 | 解決策 |
---|---|---|
Permission denied | ファイル作成や更新に権限がない | sudo を使用する or ディレクトリのパーミッション確認 |
Invalid date format | -t オプションのフォーマットが誤っている | [[CC]YY]MMDDhhmm[.ss] の形式で指定する |
まとめ
touch
は空ファイルの作成やタイムスタンプの更新に使われる軽量コマンド-t
,-r
,-a
,-m
,-c
のオプションで柔軟な制御が可能- スクリプト内でのファイル存在チェックや更新制御に最適
参考リンク
- https://man7.org/linux/man-pages/man1/touch.1.html
- https://www.gnu.org/software/coreutils/manual/html_node/touch-invocation.html