はじめに

こんにちは!今回はtouchコマンドについて学んでいきましょう。

touchはファイルを作成したり、既存ファイルのタイムスタンプを更新したりするための便利なコマンドです。Linuxでのファイル操作には欠かせないコマンドの一つですよ。

touchコマンドとは

touchコマンドは、指定したファイルが存在しない場合は新しく空のファイルを作成し、存在する場合はそのファイルのアクセス時刻と更新時刻を現在の時刻に変更します。

主な用途は以下の通りです:

  • 新しいファイルの作成: 空のファイルをすばやく作成する
  • タイムスタンプの更新: ファイルの最終更新日時を現在に変更する
  • 複数ファイルの一括処理: 複数のファイルを同時に作成・更新する

基本構文

1
touch [オプション] ファイル名

主なオプション

オプション 説明
-a アクセス時刻のみを更新
-m 更新時刻のみを更新
-t YYYYMMDDHHMM 指定した時刻に設定
-c ファイルが存在しない場合、作成しない
-d 相対的な日時を指定(例:-d "yesterday"

使用例

例1: 新しいファイルを作成

1
touch myfile.txt

実行結果:

1
# myfile.txt という空のファイルが作成されます

ls -l myfile.txtで確認すると、新しく作成されたファイルが表示されます。

例2: 複数のファイルを同時に作成

1
touch file1.txt file2.txt file3.txt

実行結果:

1
# 3つのファイルが同時に作成されます

例3: 既存ファイルのタイムスタンプを更新

1
touch myfile.txt

既に存在するファイルに対してtouchを実行すると、そのファイルの更新日時が現在の時刻に変更されます。

1
2
ls -l myfile.txt
# 更新時刻が現在の時刻になっています

例4: 特定の時刻に設定

1
touch -t 202301151430 myfile.txt

実行結果:

1
# myfile.txtのタイムスタンプが2023年1月15日14時30分に設定されます

例5: 相対的な日時を指定

1
touch -d "yesterday" myfile.txt

実行結果:

1
# myfile.txtのタイムスタンプが昨日の時刻に設定されます

その他の相対指定:

  • -d "2 days ago" - 2日前
  • -d "1 week ago" - 1週間前
  • -d "next Monday" - 次の月曜日

例6: アクセス時刻のみを更新

1
touch -a myfile.txt

実行結果:

1
# アクセス時刻のみが更新されます(更新時刻は変わりません)

stat myfile.txtで確認できます。

例7: ファイルが存在しない場合は作成しない

1
touch -c nonexistent.txt

実行結果:

1
# nonexistent.txtが存在しないため、新しく作成されません

Tips・注意点

  • パーミッションが必要: ファイルを作成するには、そのディレクトリへの書き込み権限が必要です
  • 空のファイルが作成される: touchで作成されるファイルは完全に空です。内容を追加する必要があります
  • スペースを含むファイル名: ファイル名にスペースが含まれる場合は、クォートでくくります
1
2
touch "my file.txt"
touch my\ file.txt
  • 隠しファイルの作成: ファイル名を.で始めると隠しファイルになります
1
touch .hidden
  • 複数ディレクトリの指定: パスが異なるファイルも同時に作成できます
1
touch ~/file1.txt /tmp/file2.txt ./file3.txt

実践的な使い方

スクリプト内での利用

シェルスクリプトで、ファイルの存在確認と更新をまとめて行えます。

1
2
3
4
#!/bin/bash
logfile="/var/log/myapp.log"
touch "$logfile"  # ログファイルがなければ作成、あれば時刻を更新
echo "$(date): Application started" >> "$logfile"

ファイルのリセット(内容を保持してタイムスタンプ更新)

既存ファイルのタイムスタンプだけを更新して、内容は保持します。

1
2
3
4
# ファイルをコピーして内容を保持
cp myfile.txt myfile_backup.txt
# 元のファイルのタイムスタンプを更新
touch myfile.txt

テンプレートファイルの作成

よく使うテンプレートファイルを事前に作成しておく場合:

1
touch template_letter.txt template_report.txt template_invoice.txt

まとめ

今回はtouchコマンドについて学びました。

ポイント:

  • touchでファイルを素早く作成できる
  • 既存ファイルのタイムスタンプを更新できる
  • -tオプションで特定の時刻を指定できる
  • スクリプトやシェル環境での操作が効率化できる

touchは一見シンプルなコマンドですが、ファイル管理やスクリプト作成で非常に便利です。日常的に活用してみてください!

次回もLinuxコマンドの学習を続けていきましょう!