はじめに#
こんにちは!今回はtouchコマンドについて学んでいきましょう。
touchはファイルを作成したり、既存ファイルのタイムスタンプを更新したりするための便利なコマンドです。Linuxでのファイル操作には欠かせないコマンドの一つですよ。
touchコマンドとは#
touchコマンドは、指定したファイルが存在しない場合は新しく空のファイルを作成し、存在する場合はそのファイルのアクセス時刻と更新時刻を現在の時刻に変更します。
主な用途は以下の通りです:
- 新しいファイルの作成: 空のファイルをすばやく作成する
- タイムスタンプの更新: ファイルの最終更新日時を現在に変更する
- 複数ファイルの一括処理: 複数のファイルを同時に作成・更新する
基本構文#
主なオプション#
| オプション |
説明 |
-a |
アクセス時刻のみを更新 |
-m |
更新時刻のみを更新 |
-t YYYYMMDDHHMM |
指定した時刻に設定 |
-c |
ファイルが存在しない場合、作成しない |
-d |
相対的な日時を指定(例:-d "yesterday") |
使用例#
例1: 新しいファイルを作成#
実行結果:
1
|
# myfile.txt という空のファイルが作成されます
|
ls -l myfile.txtで確認すると、新しく作成されたファイルが表示されます。
例2: 複数のファイルを同時に作成#
1
|
touch file1.txt file2.txt file3.txt
|
実行結果:
例3: 既存ファイルのタイムスタンプを更新#
既に存在するファイルに対して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
|
# アクセス時刻のみが更新されます(更新時刻は変わりません)
|
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 ~/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コマンドの学習を続けていきましょう!