touch コマンドの使い方 [Linux]

2025/04/27

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です