Linux の touch コマンドは、Linux で空のファイルを作成するだけでなく、さまざまな用途に使用できます。これを使用して、アクセスや変更時刻を含む既存のファイルのタイムスタンプを変更できます。この記事では、Linux ターミナルから touch コマンドを利用できる 8 つのシナリオを紹介します。
この記事に記載されているコマンドと手順を Ubuntu 18.04 LTS システムで実行しました。 touch コマンドはコマンド ライン ユーティリティであるため、この記事では Ubuntu ターミナルを使用します。システム ダッシュまたは Ctrl+Alt+T ショートカットのいずれかを使用して、ターミナルを開くことができます。
1. touch コマンドで単一の空のファイルを作成します
touch コマンドの最も単純で基本的な使い方は、コマンド ラインから空のファイルを作成することです。ターミナルに精通している場合は、次のコマンドを使用して、コマンド ラインで新しいファイルをすばやく作成できます。
$ タッチ「ファイル名」
例:
$ touch samplefile
次の例では、touch コマンドを使用して「samplefile」という名前の空のファイルを作成しています。 touch コマンドでは、ファイルが作成されているかどうかを確認するプロンプトが表示されないため、ls コマンドを使用してシステム上のファイルの存在を確認しました。
2. touch コマンドで一度に複数のファイルを作成
cat コマンドと標準のリダイレクト シンボルもコマンド ラインからファイルを作成する方法ですが、一度に複数のファイルを作成できる touch コマンドが有利です。 touch コマンドで複数のファイルを作成するには、次の構文を使用できます:
$ touch samplefile1 samplefile2 samplefile3 ….
次の例では、touch コマンドを使用して 3 つのファイルを同時に作成し、それらのファイルの存在を表示するために ls コマンドを使用しています:
3. touch コマンドで新しいファイルを作成しないようにする
ファイルがまだ存在しない場合、新しいファイルを作成しないようにする必要がある場合があります。その場合、次のように touch コマンドで「-c」オプションを使用できます。
$ touch -c “filename”
次の例では、touch コマンドを使用して、前述の新しいファイルの作成を強制的に回避しています。
ls コマンドを使用してそのファイルを一覧表示すると、次の出力で、そのようなファイルがシステムに存在しないことが確認されます。
4.ファイルのアクセス時間と変更時間の両方を変更する
touch コマンドのもう 1 つの用途は、ファイルのアクセス時間と変更時間の両方を変更することです。
例を示して、それを行う方法を示しましょう。 touch コマンドで「testfile」という名前のファイルを作成し、stat コマンドでその統計を表示しました。
次に、次のタッチ コマンドを入力しました:
$ touch testfile
この touch コマンドにより、「testfile」に対して再度 touch コマンドを実行したときのアクセス時刻と変更時刻が変更されました。次の画像で、変更されたアクセス時間と変更時間を確認できます:
5.アクセス時間または変更時間のいずれかを変更
アクセス時刻と変更時刻の両方を変更する代わりに、タッチ コマンドを使用して、そのうちの 1 つだけを変更することを選択できます。
次の例では、「samplefile」という名前でファイルを作成し、stat コマンドで統計を表示しました:
このファイルの touch コマンドで「-a」オプションを使用すると、このファイルのアクセス時間のみを変更できます:
$ touch -a samplefile
stat コマンドの出力は、アクセス時刻が「-a」オプションを指定して touch コマンドを実行した時刻に変更されたことを示しています:
このファイルの touch コマンドで「-m」オプションを使用して、このファイルの変更時刻のみを変更できます:
$ touch -m samplefile
stat コマンドの出力は、修正時刻が「-m」オプションを指定して touch コマンドを実行した時刻に変更されたことを示しています:
6.あるファイルから別のファイルにアクセスと変更時間をコピーする方法
samplefileA:
という名前のファイルがあるとします。
そして、samplefileB という名前の別のファイル:
samplefileA のアクセスと変更時刻を samplefileB のアクセス時刻と変更時刻に変更したい場合は、次のように touch コマンドを使用できます。
$ touch samplefileA -r sampleFileB
上の画像の stat コマンドの出力は、samplefileA が samplefileB と同じアクセスおよび変更値を持つようになったことを示しています。
7.指定されたタイムスタンプで新しいファイルを作成します
実際に作成した時間ではなく、タイムスタンプを指定して新しい空のファイルを作成するには、touch コマンドの次の構文を使用できます:
$ touch -t YYMMDDHHMM.SS “filename”
次の例は、サンプルファイルの stat コマンドが、そのアクセス時間と変更時間が、touch コマンドで作成中に提供したタイムスタンプに基づいていることを示しています。
8.ファイルのタイムスタンプを別の時間に変更する
touch コマンドの次の構文を使用して、既存のファイルのタイムスタンプを別の時間に変更できます。
$ touch -c -t YYMMDDHHMM.SS “filename”
次の例では、touch コマンドを使用して既存のファイルのタイムスタンプを変更し、そのサンプル ファイルで stat コマンドを使用して変更を確認しています:
この記事で紹介した基本的かつ有用なシナリオを通じて、タッチ コマンドの習得を開始し、それを使用して Linux コマンド ラインから一見複雑なタスクをすばやく実行できます。