touch コマンドはファイルのタイムスタンプを変更します。また、1 つ以上の空のファイルを作るためにも広く使われます。
基本構文は次のとおりです。
touch [OPTIONS] FILE...
コマンドライン · レッスン 5
`touch` コマンドで空のファイルを作成し、ファイルのタイムスタンプを管理する方法を学びます。
touch コマンドはファイルのタイムスタンプを変更します。また、1 つ以上の空のファイルを作るためにも広く使われます。
基本構文は次のとおりです。
touch [OPTIONS] FILE...
指定したファイルが存在しなければ、touch は空のファイルとして作成します。
$ touch mysuperduperfile
各ファイル名を並べると、1 つのコマンドで複数のファイルを作れます。
$ touch file1.txt file2.txt file3.log
これはプレースホルダーの作成に便利ですが、touch はファイルへテキストを追加しません。空でないファイルが必要なら、テキストエディタや内容を書き込むための別のコマンドを使ってください。
まだ存在しない場合に、one、two、three という 3 つの空ファイルを作るコマンドはどれですか?
ファイルはいくつかのタイムスタンプを記録します。既定では、既存ファイルに touch を実行すると、アクセス時刻と変更時刻の両方が現在時刻に変わり、ファイル内容は変わりません。
コマンドの前後で、表示される変更時刻を比較できます。
$ ls -l mysuperduperfile
$ touch mysuperduperfile
$ ls -l mysuperduperfile
通常、ls -l の出力が表示するのは、アクセス時刻ではなく変更時刻です。
すでに存在する report.txt に touch report.txt を実行するとどうなりますか?
アクセス時刻だけを変更するには -a、変更時刻だけなら -m を使います。
$ touch -a notes.txt
$ touch -m notes.txt
notes.txt の変更時刻だけを更新するコマンドはどれですか?
-d オプションは現在時刻の代わりに日時文字列を受け取ります。
$ touch -d "2026-06-23 12:30:00" mysuperduperfile
参照ファイルと同じアクセス時刻と変更時刻を設定するには、-r を使います。
$ touch -r file1.txt file2.txt
ここでは file1.txt がタイムスタンプを提供し、file2.txt が変更されます。-t オプションでも、短い数値形式で時刻を指定できます。
source.txt のタイムスタンプを target.txt へコピーするコマンドはどれですか?
通常、指定したパスが存在しなければ touch はファイルを作成します。すでに存在する場合だけ更新するには -c を追加します。
$ touch -c existing-file.txt
existing-file.txt が存在しなければ、このコマンドは作成しません。新しいファイルを導入せずにタイムスタンプを更新したいスクリプトで役立ちます。
status.log が存在すれば更新し、存在しなければ作成しないコマンドはどれですか?
レッスン完了
これで touch を使い、空のファイルを作成してファイルのタイムスタンプを制御できるようになりました。
1 つ以上の空ファイルを作成する。
ファイル内容を変えずにタイムスタンプを更新する。
アクセス時刻または変更時刻を選ぶ。
特定の時刻を設定するか、参照ファイルのタイムスタンプをコピーする。
存在しないファイルの作成を防ぐ。