メインコンテンツへスキップ
入門6分で読める

touchコマンドの意外な使い方

Linuxのtouchコマンドは単なるファイル作成だけでなく、タイムスタンプ操作など様々な用途に使えます。その活用法を詳しく解説します。

基礎編touchファイル操作タイムスタンプ初心者向け

🎯 この記事で学べること

  • 1
    `touch`コマンドで空のファイルを作成する方法をマスターできます
  • 2
    複数ファイルを一度に作成する効率的な方法がわかります
  • 3
    ファイルのタイムスタンプ(更新日時)を操作する方法を習得できます
  • 4
    スクリプトやビルドシステムでの実践的な活用法が身につきます
  • 5
    `touch`コマンドの意外な使い道を理解できます

読了時間: 約6

touchコマンドとは

こんにちは!今回は、ファイルを作成するtouchコマンドについて学んでいきましょう。

touchという名前を聞いて、「触る?」と思った方、正解です!このコマンドは文字通り「ファイルに触れる」ことから名付けられました。でも実際には、新しいファイルを作ったり、既存ファイルの更新日時を変更したりする、とても便利なコマンドなんです。

基本的な使い方

新規ファイルの作成

まずは一番よく使う、新しい空のファイルを作る方法から始めましょう!

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

touchで作られるファイルは、中身が空っぽ(0バイト)のファイルです。メモ帳で新規作成して何も書かずに保存したようなものですね。

複数ファイルの一括作成

実は、複数のファイルを一度に作ることもできるんです!

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

プロジェクトの初期セットアップ時に便利ですね!

タイムスタンプの操作

ここからがtouchコマンドの真の力です。ファイルの「更新日時」を自由に操作できるんです!

既存ファイルのタイムスタンプ更新

既にあるファイルにtouchを使うと、そのファイルの更新日時が「今」に変わります。

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ファイルの中身は変わらずに、更新日時だけが変わります。これが「触る」という名前の由来です!

🎮 理解度チェック

ここまでの内容を理解できているか、確認してみましょう!

Q1: 新しい空のファイル「report.txt」を作成するコマンドは?

新しい空のファイル「report.txt」を作成するコマンドは?

Q2: touchコマンドで既存のファイルに対して実行すると何が起こりますか?

touchコマンドで既存のファイルに対して実行すると何が起こりますか?

実践的な使用例

プロジェクトの初期ファイル作成

新しいプロジェクトを始めるときの定番ファイルを一気に作成:

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

日付入りファイルの作成

バックアップやログファイルに便利な、日付入りファイル名:

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

便利なオプション

-t オプション(特定の日時を指定)

過去や未来の日時を指定してファイルを作成できます:

# 2025年1月1日 12:00のタイムスタンプで作成
$ touch -t 202501011200 newyear.txt

形式はYYYYMMDDhhmmです:

  • YYYY: 年(4桁)
  • MM: 月(2桁)
  • DD: 日(2桁)
  • hh: 時(2桁)
  • mm: 分(2桁)

-c オプション(新規作成しない)

既存ファイルのタイムスタンプだけ更新したい場合:

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

応用テクニック

ビルドシステムでの活用

makeなどのビルドツールは、ファイルの更新日時を見て再ビルドの必要性を判断します:

# ソースファイルを「更新」して強制的に再コンパイル
$ touch src/main.c
$ make

ロックファイルの作成

スクリプトの多重実行を防ぐ仕組み:

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ワイルドカードとの組み合わせ

複数ファイルのタイムスタンプを一括更新:

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

🎮 応用問題

Q3: プロジェクトでREADME.mdindex.htmlstyle.cssの3つのファイルを一度に作成するコマンドは?

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

先にディレクトリを作成する必要があります:

UNICORNEE AI Terminal
Welcome to UNICORNEE AI Terminal!
Type "help" to see available commands.
user@unicornee:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

意外な活用法

テスト用ダミーファイルの大量作成

# 連番付きのテストファイルを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で色々試してみましょう!