touch コマンドは、ファイルのアクセス時刻・更新時刻を変更 するためのコマンドです。
存在しないファイルを指定した場合は、空ファイルとして新規作成することもできます。
構文(Syntax)
touch [オプション] ファイル...
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 存在する場合はタイムスタンプ更新、なければ空ファイル作成 | touch file.txt |
-c / --no-create | 新規作成せず、既存ファイルがある場合のみタイムスタンプ変更 | touch -c file.txt |
-a | アクセス時刻(atime)のみ更新 | touch -a file.txt |
-m | 更新時刻(mtime)のみ更新 | touch -m file.txt |
-d TIME | 指定した日時に変更 | touch -d "2025-08-21 10:00" file.txt |
-t STAMP | [[CC]YY]MMDDhhmm[.ss] 形式で時刻を指定 | touch -t 202508211030.45 file.txt |
-r FILE | 参照ファイルと同じタイムスタンプに変更 | touch -r ref.txt target.txt |
実行例
空ファイルを作成
touch newfile.txt
ls -l newfile.txt
アクセス時刻だけ更新
touch -a file.txt
更新時刻だけ更新
touch -m file.txt
2025年8月21日10:00に変更
touch -d "2025-08-21 10:00" file.txt
-t 形式で日時を指定
touch -t 202508211030.45 file.txt
→ 2025年8月21日10時30分45秒
参照ファイルと同じ時刻に変更
touch -r old.txt new.txt
作成せずに既存ファイルのみに適用
touch -c notfound.txt
→ ファイルが存在しないので何も起こらない
エラー例(権限不足)
touch /root/secret.txt
出力例:
touch: cannot touch '/root/secret.txt': Permission denied
関連コマンド
stat: ファイルの詳細情報(atime, mtime, ctime)を表示ls -l --time=atime: アクセス時刻を確認date: システムの日時を表示・設定
備考
touchはスクリプトで一時ファイルや空ファイルを作る用途でもよく使われます。-dは可読性が高く便利ですが、POSIX 互換を意識するなら-tを使うとよいです。- ファイルシステムによっては atime の更新が無効化されている場合があります(
noatimeマウントオプションなど)。
参考
- manページ: man7.org touch(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント