Linux でタッチ コマンドを使用する方法
ファイルをすばやく作成したいが、テキスト エディターを開いたり、グラフィカル インターフェイスを操作したりしたくない場合は、touch
コマンドを使用してください。このコマンドは、空のファイルを作成したり、ファイルのタイムスタンプを更新したりするのに役立ちます。これは、バックアップを管理し、スクリプトを効率的に実行するために重要です。
このガイドでは、Linux で touch コマンドを使用して 1 つまたは複数の空のファイルを作成する方法、またはスクリプトのニーズに合わせてタイムスタンプを調整する方法について説明します。
タッチコマンドの仕組み
UNIX/Linux システムでは、このtouch
コマンドは空のファイルを素早く作成するためによく使用されます。また、このコマンドを使用して、タイムスタンプ (具体的には、既存のファイルのアクセス時刻と変更時刻) を変更することもできます。
ファイルが存在しない場合は、touch はコンテンツなしでファイルを生成します。さらに、タイムスタンプを変更できるため、スクリプトの作成やファイル システムの管理に非常に役立ちます。
touch コマンドの構文は次のとおりです。
空のファイルを作成する
touch コマンドで空のファイルを作成するのは非常に簡単です。touch
フラグやオプションなしでコマンドを使用するだけです。
ファイルの作成を確認するには、次のstat
コマンドを使用してファイル サイズを確認します。
出力で、サイズフィールドを探します。0 が表示されている場合、ファイルは空です。
さらに、ファイルがすでに存在する場合、touch コマンドは、ファイルの内容や権限に影響を与えることなく、ファイルのアクセス時刻 (atime) と変更時刻 (mtime) を現在の時刻に更新します。
複数の空のファイルを作成する
空のファイルが複数必要な場合はどうすればよいでしょうか。touch を使用すると、一度に複数のファイルを作成できます。たとえば、次のようにスペースで区切られた複数のファイルを作成してみましょう。
次のコマンドを実行すると、複数の空のファイルが作成されたことを確認できます。
中括弧を使用して、番号または文字で区切られた名前を持つ一連のファイルを作成することもできます。
番号付きの名前を持つ複数のファイルを作成しましょう。
指定されたディレクトリ内のファイルを表示してこれを確認します。
同様に、文字付きの名前を持つファイルを作成することもできます。
タッチコマンドオプション
前述のように、touch コマンドはファイルを作成するだけでなく、ファイルのタイムスタンプを管理するためのツールでもあります。これらのタイムスタンプを操作するには、touch コマンドのオプションがどのように機能するかを知っておく必要があります。詳しく見てみましょう。
オプション | 説明 |
---|---|
-あ | ファイルのアクセス時間のみを更新します。 |
-c | まだ存在しない場合は、新しいファイルの作成を防止します。 |
-d=、–date= | 指定された日付文字列を使用してファイルのタイムスタンプを変更します。 |
-m | ファイルの変更時刻のみを更新します。 |
-r | 参照ファイルからの atime と mtime を使用します。 |
-t | 指定された日付と時刻を使用してファイルのタイムスタンプを変更します。 |
ファイルのアクセス時間の変更
アクセス時間 (atime) は、grep や cat などのコマンドライン ツール、または vim や nano などのテキスト エディターを使用してファイルの内容にアクセスするたびに更新されるタイムスタンプです。
デフォルトでは、touch はアクセス時間と変更時間の両方を更新します。ただし、アクセス時間のみを変更する場合は、コマンド-a
で オプションを使用できますtouch
。これは、ファイルの使用状況をシミュレートしたり、特定の操作のログを調整したりする場合などに特に便利です。
次のコマンドを使用して、指定したファイルのアクセス時間を変更できますtouch -a
。
さらに、上記のコマンドは、mtime に影響を与えずに、指定されたファイルのアクセス時刻を現在の時刻に更新します。
次のコマンドを実行して変更を確認しましょう。
-a
さらに、オプションとオプションを組み合わせて特定のアクセス時間を設定することもできます-t
。たとえば、指定したファイルのアクセス時間を 2010 年 6 月 1 日の午前 0 時に変更するには、次のようにします。
ここで、-a
オプションはアクセス時間を変更し、オプションは[[CC]YY]MMDDhhmm[.ss]-t
の形式で時間を指定します。
再度、変更を確認するには、次のコマンドを使用できます。
更新時刻の変更
変更時刻、つまり時間は、ファイルの内容が変更されるたびに変更されるタイムスタンプです。ただし、ファイルの権限や所有権に関連する変更は追跡されません。
アクセス時間を変更せずにファイルの最終変更時間のみを更新するには、-m
touch コマンドのオプションを使用します。
変更を確認するには、次のstat
コマンドを使用します。
これにより、アクセス時間または atime はそのままにして、mtime を現在の時刻に変更します。
変更時刻に特定のタイムスタンプを設定する必要がある場合は、-m
オプションと-t
オプションを組み合わせる必要があります。たとえば、変更時刻を 2014 年 6 月 19 日午前 8 時 45 分に設定するには、次のコマンドを実行します。
次に、次のコマンドを実行して更新された変更時刻を確認します。
変更とアクセス時間を変更する
atime と mtime の両方を同時に更新する必要がある場合があります。そのためには、オプションに関係なく touch コマンドを使用します。
このコマンドを実行すると、atime と mtime の両方が現在の時刻に変更されます。ファイルの内容を変更せずに、ファイルのタイムスタンプを更新して最近の操作や変更を反映させたい場合に使用します。
さらに、コマンドと一緒に オプション-a
を使用して、アクセス時刻と変更時刻の両方を変更することもできます。-m
touch
次のコマンドを実行すると、更新された時刻を確認できます。
指定時間を使用してファイルを作成する
場合によっては、ファイルのタイムスタンプを現在の時刻ではなく、特定の時刻と日付に設定したいことがあります。オプションの後に[[CC]YY]MMDDhhmm[.ss]-t
の形式で希望のタイムスタンプを指定すると、それが可能になります。
たとえば、特定のファイルのアクセス時刻と変更時刻を 2024 年 1 月 1 日午後 12 時 30 分に設定する場合は、次のように入力する必要があります。
変更を確認するには、次のコマンドを実行します。
ファイルのタイムスタンプを別のファイルのタイムスタンプと一致するように更新するオプションを使用することもできます-r
。たとえば、タイムスタンプhappy.txt
に基づいてファイルのタイムスタンプを変更してみましょうnew_file.txt
。
ただし、変更する前に、指定したファイルの変更時刻を確認してみましょう。
その後、ファイルのタイムスタンプを別のファイルのタイムスタンプと一致するように変更します。
変更を検証するには:
タッチコマンドの代替
ファイルをすばやく作成したり、タイムスタンプを操作するには touch が私のお気に入りのツールですが、他にも使用できる方法があります。これらの代替手段をいくつか見てみましょう。
猫コマンド
cat コマンドはファイルの内容を表示するためによく使用されますが、ファイルを作成することもできます。リダイレクト演算子を使用して cat を使用すると、空のファイルを生成できます。
このコマンドは、入力モードを作成してfilename.txt
入力モードに入ります。Ctrl+ を押すとD、入力が終了し、ファイルは空になります。
リダイレクト演算子
リダイレクト演算子 (>、>>) は、ファイルを作成するもう 1 つの方法です。この演算子を使用すると>
、空のファイルを作成したり、既存のファイルを上書きしたりできます。
演算子を使用することもできます>>
が、新しいファイルを作成したり空のままにしたりするのではなく、既存のファイルにコンテンツを追加します。
テキストエディタ
ファイルの作成や編集ができるコマンドライン テキスト エディターは、nano、vim、emacs など数多くあります。さらに、これらのテキスト エディターを使用して空のファイルを作成することもできます。
たとえば、Vim で空のファイルを作成するには、次のコマンドを実行します。
Vim を開くと、デフォルトでコマンド モードになります。 を押すとi挿入モードに切り替わり、コンテンツを入力または編集できるようになります。
挿入モードに入ったら、Esc キーを押してコマンド モードに戻ります。次に、入力し:wq
て Enter キーを押して作業内容を保存し、Vim を終了します。これで完了です。Vim を使用して空のファイルが作成されました。
まとめ
Linux にはファイルを管理する方法がいくつか用意されていますが、タッチ ユーティリティはシンプルさと効率性で際立っています。また、ファイルの連結、ファイルの検索、ファイルの削除など、Linux で他の操作を実行する方法も学習できます。
画像クレジット: Unsplash。すべての変更とスクリーンショットはHaroon Javedによるものです。
コメントを残す