touch
100%

コマンドライン · レッスン 5

touch

`touch` コマンドで空のファイルを作成し、ファイルのタイムスタンプを管理する方法を学びます。

touch コマンドはファイルのタイムスタンプを変更します。また、1 つ以上の空のファイルを作るためにも広く使われます。

基本構文は次のとおりです。

touch [OPTIONS] FILE...

空のファイルを作成する

指定したファイルが存在しなければ、touch は空のファイルとして作成します。

$ touch mysuperduperfile

各ファイル名を並べると、1 つのコマンドで複数のファイルを作れます。

$ touch file1.txt file2.txt file3.log

これはプレースホルダーの作成に便利ですが、touch はファイルへテキストを追加しません。空でないファイルが必要なら、テキストエディタや内容を書き込むための別のコマンドを使ってください。

まだ存在しない場合に、onetwothree という 3 つの空ファイルを作るコマンドはどれですか?

ファイルのタイムスタンプを更新する

ファイルはいくつかのタイムスタンプを記録します。既定では、既存ファイルに touch を実行すると、アクセス時刻と変更時刻の両方が現在時刻に変わり、ファイル内容は変わりません。

コマンドの前後で、表示される変更時刻を比較できます。

$ ls -l mysuperduperfile
$ touch mysuperduperfile
$ ls -l mysuperduperfile

通常、ls -l の出力が表示するのは、アクセス時刻ではなく変更時刻です。

すでに存在する report.txttouch 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 を完了しました

これで touch を使い、空のファイルを作成してファイルのタイムスタンプを制御できるようになりました。

  • 1 つ以上の空ファイルを作成する。

  • ファイル内容を変えずにタイムスタンプを更新する。

  • アクセス時刻または変更時刻を選ぶ。

  • 特定の時刻を設定するか、参照ファイルのタイムスタンプをコピーする。

  • 存在しないファイルの作成を防ぐ。

学習進捗を保存

無料アカウントを作成してこのレッスンを保存し、どのデバイスからでも学習を続けられます。

無料アカウントを作成
次のレッスン
コマンドライン に戻る