🎯 この記事で学べること
- 1`touch`コマンドで空のファイルを作成する方法をマスターできます
- 2複数ファイルを一度に作成する効率的な方法がわかります
- 3ファイルのタイムスタンプ(更新日時)を操作する方法を習得できます
- 4スクリプトやビルドシステムでの実践的な活用法が身につきます
- 5`touch`コマンドの意外な使い道を理解できます
読了時間: 約6分
touchコマンドとは
こんにちは!今回は、ファイルを作成するtouch
コマンドについて学んでいきましょう。
touch
という名前を聞いて、「触る?」と思った方、正解です!このコマンドは文字通り「ファイルに触れる」ことから名付けられました。でも実際には、新しいファイルを作ったり、既存ファイルの更新日時を変更したりする、とても便利なコマンドなんです。
基本的な使い方
新規ファイルの作成
まずは一番よく使う、新しい空のファイルを作る方法から始めましょう!
ファイルツリー
touch
で作られるファイルは、中身が空っぽ(0バイト)のファイルです。メモ帳で新規作成して何も書かずに保存したようなものですね。
複数ファイルの一括作成
実は、複数のファイルを一度に作ることもできるんです!
ファイルツリー
プロジェクトの初期セットアップ時に便利ですね!
タイムスタンプの操作
ここからがtouch
コマンドの真の力です。ファイルの「更新日時」を自由に操作できるんです!
既存ファイルのタイムスタンプ更新
既にあるファイルにtouch
を使うと、そのファイルの更新日時が「今」に変わります。
ファイルツリー
ファイルの中身は変わらずに、更新日時だけが変わります。これが「触る」という名前の由来です!
🎮 理解度チェック
ここまでの内容を理解できているか、確認してみましょう!
Q1: 新しい空のファイル「report.txt」を作成するコマンドは?
Q2: touch
コマンドで既存のファイルに対して実行すると何が起こりますか?
実践的な使用例
プロジェクトの初期ファイル作成
新しいプロジェクトを始めるときの定番ファイルを一気に作成:
ファイルツリー
日付入りファイルの作成
バックアップやログファイルに便利な、日付入りファイル名:
ファイルツリー
便利なオプション
-t オプション(特定の日時を指定)
過去や未来の日時を指定してファイルを作成できます:
# 2025年1月1日 12:00のタイムスタンプで作成
$ touch -t 202501011200 newyear.txt
形式はYYYYMMDDhhmm
です:
- YYYY: 年(4桁)
- MM: 月(2桁)
- DD: 日(2桁)
- hh: 時(2桁)
- mm: 分(2桁)
-c オプション(新規作成しない)
既存ファイルのタイムスタンプだけ更新したい場合:
ファイルツリー
応用テクニック
ビルドシステムでの活用
makeなどのビルドツールは、ファイルの更新日時を見て再ビルドの必要性を判断します:
# ソースファイルを「更新」して強制的に再コンパイル
$ touch src/main.c
$ make
ロックファイルの作成
スクリプトの多重実行を防ぐ仕組み:
ファイルツリー
ワイルドカードとの組み合わせ
複数ファイルのタイムスタンプを一括更新:
ファイルツリー
🎮 応用問題
Q3: プロジェクトでREADME.md
、index.html
、style.css
の3つのファイルを一度に作成するコマンドは?
エラーとその対処法
権限エラー
$ touch /root/file.txt
touch: cannot touch '/root/file.txt': Permission denied
書き込み権限のある場所でファイルを作成しましょう:
$ touch ~/file.txt # ホームディレクトリなら大丈夫
ディレクトリが存在しない
$ touch /nonexistent/file.txt
touch: cannot touch '/nonexistent/file.txt': No such file or directory
先にディレクトリを作成する必要があります:
ファイルツリー
意外な活用法
テスト用ダミーファイルの大量作成
# 連番付きのテストファイルを100個作成
for i in {1..100}; do touch test_$i.txt; done
条件付きスクリプト実行
最後の実行から一定時間経過したら実行する仕組み:
MARKER="/tmp/daily_task.marker"
# マーカーファイルが24時間以上古い、または存在しない場合
if [ ! -f "$MARKER" ] || [ $(find "$MARKER" -mtime +1 2>/dev/null) ]; then
echo "日次タスクを実行します"
touch "$MARKER"
fi
📝 まとめ
今回はtouch
コマンドについて学びました!
touch
は空のファイルを作成するコマンド- 複数ファイルを一度に作成できる
- 既存ファイルのタイムスタンプを更新できる
-t
オプションで特定の日時を指定可能- スクリプトやビルドシステムで幅広く活用される
touch
は単純に見えて奥が深いコマンドです。ファイル作成だけでなく、タイムスタンプ操作を活用することで、より高度な処理が可能になります。
次は実際にファイルを編集する方法を学んでいきましょう!
まずは基本的なファイル作成から始めて、慣れてきたらタイムスタンプ操作にも挑戦してみてください。上のPlaygroundで色々試してみましょう!