Linuxでタッチコマンドを使用する方法

「touch」コマンドを使用して、新しい空のファイルを作成したり、既存のファイル/ディレクトリのタイムスタンプを簡単に更新したりできます

の主な用途 触る コマンドは、コンテンツなしでファイルを作成することです。空のファイルを作成すると、システムのメモリが無駄になっているように見えるかもしれませんが、ここに問題があります。 触る ログの保持と監視が必要な大規模なプロジェクトで作業しているときにタイムスタンプやログを作成する場合は、コマンドを自由に使用できます。を使用して空のファイルを作成するだけです 触る コマンドとファイルには、作成時の日時スタンプが付いています。 ((ファイルの内容としてではなく、ファイル情報内).

の2番目の重要な使用法 触る コマンドは、ファイルのアクセス時間と変更時間を変更することです。すべてのファイル/ディレクトリには、一意のタイムスタンプが追加されています。ファイル/ディレクトリのアクセス時間と変更時間を表示します。ただし、この情報は、 触る 指図。

の使用法を見てみましょう 触る 自明の例でより詳細にコマンド。

で使用されるオプション 触る 指図

で使用できるさまざまなオプションがあります 触る 指図。

オプション説明
-aファイルのアクセス時間を変更する
-mファイルの変更時刻を変更する
-c新しいファイルを作成せずにファイルのアクセス時間を変更する
-rファイルまたはディレクトリのタイムスタンプを設定するために参照ファイルを使用する
-d自由形式の人間が読める日付を使用して、アクセス時間と変更時間に同じ任意のタイムスタンプを設定する
-t指定された時間を使用してファイルを作成する

使用する 触る 指示

The 触る コマンドを使用すると、オプションを使用せずに空のファイルを作成できます。以下の例に従って、単一および複数の空のファイルを作成します。

空のファイルを作成するには

あなたは使用することができます 触る 単一の空のファイルを作成するオプションなしのコマンド。

構文:

[ファイル名]をタッチします

例:

gaurav @ ubuntu:〜/ worksheet $ touch iift.txt

ここでは、iift.txtという名前のファイルを使用して作成しました 触る 指図。使用 ls ファイルが作成されているかどうかを確認するコマンド。

gaurav @ ubuntu:〜/ worksheet $ ls iift.txt init1 init2 init3 init4

ファイル情報を表示するには、 統計 次のようにコマンドします。

gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:0ブロック:0 IOブロック:4096通常の空のファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r --r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 10:18:43.318160860 +0530変更:2020-09-14 10:18:43.318160860 +0530変更: 2020-09-14 10:18:43.318160860 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $

複数の空のファイルを作成するには

一度に複数の空のファイルを作成したい場合は、 触る 次のようにコマンドします。

構文:

タッチ[ファイル名-1] [ファイル名-2] [ファイル名-3]

例:

gaurav @ ubuntu:〜/ worksheet $ touch log1.txt ssh.txt filemove.c gaurav @ ubuntu:〜/ worksheet $ ls -l total 36 -rw-r--r-- 1 gaurav gaurav 0 Sep 14 10:35 filemove .c -rw-r--r-- 1 gaurav gaurav 0 Sep 14 10:18 iift.txt -rw-r--r-- 1 gaurav gaurav 0 Sep 14 10:35 log1.txt -rw-r-- r-- 1 gaurav gaurav 09月14日10:35ssh.txt

ここでは、「log1.txt」、「ssh.txt」、「filemove.c」の3つのファイルを作成しました。これらは異なるファイル拡張子を持っています。

次の方法を使用して、空のファイルをまとめて作成することもできます。

構文:

タッチ[ファイル名]-{1..n} .txt

例:

10個のファイルを作成します。 sheldon_log-1.txt、sheldon_log-2.txtなどからsheldon_log-10.txtまで

gaurav @ ubuntu:〜/ worksheet $ touch sheldon_log- {1..0} .txt gaurav @ ubuntu:〜/ worksheet $
gaurav @ ubuntu:〜/ worksheet $ ls filemove.c iift.txt sheldon_log-10.txt sheldon_log-2.txt sheldon_log-4.txt sheldon_log-6.txt sheldon_log-8.txt gsy.c log1.txtsheldon_log-1。 txt sheldon_log-3.txt sheldon_log-5.txt sheldon_log-7.txt sheldon_log-9.txt gaurav @ ubuntu:〜/ worksheet $

ファイルまたはディレクトリのアクセス時間を変更または変更する

アクセスタイムスタンプは、ファイルが最後に読み取られた時刻です。ユーザーがファイルを読み取るたびに、そのファイルのアクセスタイムスタンプが更新されます。アクセスタイムスタンプは、ファイルが最後にアクセスされた時刻を示します。このファイルまたはディレクトリで行われる変更はありませんが、参照または読み取られるだけです。

使用する 触る オプション付きコマンド -a 特定のファイルの「アクセス時間」を変更します。新しい「アクセス時間」は現在の日時に設定されます。現在のアクセス時間と変更時間を確認するには、 統計 指図。

ファイルの変更

構文:

touch -a [ファイル名]

例:

変更するファイルの現在のアクセス時刻が表示されます。

gaurav @ ubuntu:〜/ worksheet $ stat log1.txtファイル:log1.txtサイズ:0ブロック:0 IOブロック:4096通常の空のファイルデバイス:808h / 2056d iノード:2001385リンク:1アクセス:(0644 / -rw-r --r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-13 23:52:19.305416141 +0530変更:2020-09-13 23:52:00.215090207 +0530変更: 2020-09-13 23:52:19.305416141 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $

使用する タッチ-a ファイルlog1.txtのアクセス時刻を現在の日付と時刻に変更します。

出力:

gaurav @ ubuntu:〜/ worksheet $ touch -a log1.txt gaurav @ ubuntu:〜/ worksheet $
gaurav @ ubuntu:〜/ worksheet $ stat log1.txtファイル:log1.txtサイズ:0ブロック:0 IOブロック:4096通常の空のファイルデバイス:808h / 2056d iノード:2001385リンク:1アクセス:(0644 / -rw-r --r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 10:59:24.972855176 +0530変更:2020-09-13 23:52:00.215090207 +0530変更: 2020-09-14 10:59:24.972855176 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $

log1.txtファイルのアクセス時間が変更されていることがわかります。

ディレクトリの変更

タッチ-a ファイルの場合と同じように、ディレクトリのアクセス時間を変更するために使用することもできます。

構文:

touch -a [directory_path]

例:

gaurav @ ubuntu:〜$ stat ./workspace/tomcatファイル:./ workspace / tomcatサイズ:4096ブロック:8 IOブロック:4096ディレクトリデバイス:808h / 2056d iノード:2039942リンク:3アクセス:(0775 / drwxrwxr-x) Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2018-03-30 11:18:28.912666800 +0530変更:2018-03-30 00:13:02.452194000 +0530変更:2020-09-14 11 :18:28.912666800 +0530誕生:-

使用する タッチ-a ディレクトリtomcatのアクセス時間を変更します。

gaurav @ ubuntu:〜$ touch -a ./workspace/tomcat
gaurav @ ubuntu:〜$ stat ./workspace/tomcatファイル:./ workspace / tomcatサイズ:4096ブロック:8 IOブロック:4096ディレクトリデバイス:808h / 2056d iノード:2039942リンク:3アクセス:(0775 / drwxrwxr-x) Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 11:21:10.638538949 +0530変更:2018-03-30 00:13:02.452194000 +0530変更:2020-09-14 11 :21:10.638538949 +0530誕生:-gaurav @ ubuntu:〜$

ここで、ディレクトリ「tomcat」のアクセス時刻が現在の日時に変更されました。

ファイル/ディレクトリの変更時刻を変更する

変更時刻は、ファイルの内容が最後に変更された時刻を示します。ファイルを編集または変更したプログラムまたはプロセス。 「変更された」とは、ファイル内の何かが修正、削除、または新しいデータが追加されたことを意味します。

使用する 触る オプションと一緒にコマンド -m ファイルまたはディレクトリの「変更時間」を変更します。ファイルとディレクトリには、次のメソッドをデプロイできます。

ファイルの場合

touch -m [ファイル名]

例:

まず、 統計 ファイルの変更時刻を表示するコマンド。

gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:66ブロック:8 IOブロック:4096通常ファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r- -r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 11:33:36.927262587 +0530変更:2020-09-12 08:33:28.339190370 +0530変更:2020 -09-12 08:33:28.339190370 +0530

今使用します タッチ-m 変更時間を変更するコマンド。

gaurav @ ubuntu:〜/ worksheet $ touch -m iift.txt
gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:66ブロック:8 IOブロック:4096通常ファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r- -r-)Uund:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 11:33:36.927262587 +0530変更:2020-09-14 11:34:34.719723531 +0530変更:2020 -09-14 11:34:34.719723531 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $

ファイルの「変更時間」 iift.txt 現在の日時に変更されます。

ディレクトリの場合

touch -m [directory_path]または[directory_name]

例:

「tomcat」という名前のディレクトリの変更時刻は、 タッチ-m 指図。を使用して、現在の「変更時間」を調べましょう。 統計 指図。

gaurav @ ubuntu:〜/ worksheet $ stat tomcatファイル:tomcatサイズ:4096ブロック:8 IOブロック:4096ディレクトリデバイス:808h / 2056d iノード:2039942リンク:3アクセス:(0775 / drwxrwxr-x)Uid:(1000 / gaurav )Gid:(1000 / gaurav)アクセス:2020-09-14 11:21:10.638538949 +0530変更:2019-07-12 11:43:22.482485281 +0530変更:2019-07-12 11:43:22.482485281 +0530誕生:-

出力:

gaurav @ ubuntu:〜/ worksheet $ touch -m tomcat
gaurav @ ubuntu:〜/ worksheet $ stat tomcatファイル:tomcatサイズ:4096ブロック:8 IOブロック:4096ディレクトリデバイス:808h / 2056d iノード:2039942リンク:3アクセス:(0775 / drwxrwxr-x)Uid:(1000 / gaurav )Gid:(1000 / gaurav)アクセス:2020-09-14 11:21:10.638538949 +0530変更:2020-09-14 11:43:22.482485281 +0530変更:2020-09-14 11:43:22.482485281 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $

ここでは、ディレクトリ「tomcat」の変更タイムスタンプを変更しました。

新しいファイルを作成せずにアクセス時間を変更する

触る コマンドを実行すると、新しい空のファイルが作成されます。ただし、ファイルがすでに作成されていて、新しいファイルを作成せずにそのファイルのアクセス時間を変更したい場合があります。

この状況では、次を使用できます 触る とのコマンド -c 新しいファイルの作成を回避し、Accessのタイムスタンプを変更できるオプション。

構文:

touch -c [ファイル名]

例:

gaurav @ ubuntu:〜/ worksheet $ touch -c iift.txt gaurav @ ubuntu:〜/ worksheet $ ls demo gsy.c log1.txt sheldon_log-1.txt sheldon_log-3.txt sheldon_log-5.txt sheldon_log-7.txt sheldon_log-9.txt filemove.c iift.txt sheldon_log-10.txt sheldon_log-2.txt sheldon_log-4.txt sheldon_log-6.txt sheldon_log-8.txt tomcat gaurav @ ubuntu:〜/ worksheet $

同様に、既存のディレクトリのアクセス時間を変更できます。これを行うには、次の方法を使用できます。

例:

ディレクトリtomcatの現在のアクセスタイムスタンプを表示します。

gaurav @ ubuntu:〜/ worksheet $ stat tomcatファイル:tomcatサイズ:4096ブロック:8 IOブロック:4096ディレクトリデバイス:808h / 2056d iノード:2039942リンク:3アクセス:(0775 / drwxrwxr-x)Uid:(1000 / gaurav )Gid:(1000 / gaurav)アクセス:2020-09-14 11:21:10.638538949 +0530変更:2020-09-14 11:43:22.482485281 +0530変更:2020-09-14 11:43:22.482485281 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $ 
gaurav @ ubuntu:〜/ worksheet $ touch -c tomcat

ここでは、既存のディレクトリ「tomcat」のアクセス時間を変更しました。

出力:

gaurav @ ubuntu:〜/ worksheet $ stat tomcatファイル:tomcatサイズ:4096ブロック:8 IOブロック:4096ディレクトリデバイス:808h / 2056d iノード:2039942リンク:3アクセス:(0775 / drwxrwxr-x)Uid:(1000 / gaurav )Gid:(1000 / gaurav)アクセス:2020-09-14 20:18:52.625031128 +0530変更:2020-09-14 20:18:52.625031128 +0530変更:2020-09-14 20:18:52.625031128 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $ 

出力のクロスチェック:

gaurav @ ubuntu:〜/ worksheet $ touch -c temp.cpp gaurav @ ubuntu:〜/ worksheet $ ls temp.cpp ls: 'temp.cpp'にアクセスできません:そのようなファイルまたはディレクトリはありませんgaurav @ ubuntu:〜/ worksheet $ 

ここで使ってみました タッチ-ctemp.cpp。このファイルは存在しません。したがって、 触る オプション付き -c 新しい空のファイルの作成を回避し、既存のファイルのタイムスタンプのみを変更します。

アクセスと変更のタイムスタンプを特定の日時に変更する

前のブロックでは、 触る タイムスタンプを変更するコマンドは、現在の日時に変更されます。

ただし、カスタマイズされた日時を使用する必要がある場合があります。使用する 触る でコマンド -c -t オプションは目的を果たすことができます。

例:

ファイルのアクセスと変更のタイムスタンプを変更します iift.txt カスタマイズされた日時に。

gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:66ブロック:8 IOブロック:4096通常ファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r- -r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 12:04:07.091786565 +0530変更:2020-09-14 12:04:07.091786565 +0530変更:2020 -09-14 12:04:07.091786565 +0530誕生:-

日付と時刻は次の形式で指定できます。 {CCYY} MMDDhhmm.ss

パラメータ説明
CC年の最初の2桁
YY年の2桁目
んん年の月(01-12)
DD月の日(01-31)
hhその日の時間(00-23)
んん議事録(00-59)

日付スタンプを203011051820として使用しています(つまり、2030年11月5日、18:20時間)。

gaurav @ ubuntu:〜/ worksheet $ touch -c -t 203011051820 iift.txt

このコマンドは、ファイルのアクセスと変更のタイムスタンプを変更します iift.txt 次のように。

gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:66ブロック:8 IOブロック:4096通常ファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r- -r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2030-11-05 18:20:00.000000000 +0530変更:2030-11-05 18:20:00.000000000 +0530変更:2020 -09-14 20:39:55.641781140 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $ 

参照ファイルを使用したタイムスタンプの設定

触る コマンドはオプションと一緒に使用することもできます -r 現在のファイルで選択した参照ファイルのタイムスタンプを使用します。

構文:

touch -r [reference_file] [actual_file]

例:

我々は使用するだろう gsy.c 参照ファイルとしてのファイル。したがって、のタイムスタンプ gsy.c ファイルに使用されます iift.txt。最初に、これら両方のファイルの現在のタイムスタンプを確認してみましょう。 統計 指図。

gaurav @ ubuntu:〜/ worksheet $ stat gsy.cファイル:gsy.cサイズ:0ブロック:0 IOブロック:4096通常の空のファイルデバイス:808h / 2056d iノード:2001385リンク:1アクセス:(0644 / -rw-r --r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 10:59:24.972855176 +0530変更:2020-09-13 23:52:00.215090207 +0530変更: 2020-09-14 10:59:24.972855176 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:66ブロック:8 IOブロック:4096通常のファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r--r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2025-10-19 18:20:00.000000000 +0530変更: 2025-10-19 18:20:00.000000000 +0530変更:2020-09-14 20:39:55.641781140 +0530 

コマンドの使用 タッチ-r 今。

gaurav @ ubuntu:〜/ worksheet $ touch -r gsy.c iift.txt

出力:

gaurav @ ubuntu:〜/ worksheet $ stat iift.txtファイル:iift.txtサイズ:66ブロック:8 IOブロック:4096通常ファイルデバイス:808h / 2056d iノード:1990385リンク:1アクセス:(0644 / -rw-r- -r-)Uid:(1000 / gaurav)Gid:(1000 / gaurav)アクセス:2020-09-14 10:59:24.972855176 +0530変更:2020-09-13 23:52:00.215090207 +0530変更:2020 -09-14 21:04:27.640026328 +0530誕生:-gaurav @ ubuntu:〜/ worksheet $

出力から、ファイルのタイムスタンプがわかります iift.txt 変更されました。新しいタイムスタンプは、参照ファイルgsy.cのタイムスタンプと同様になりました。

結論

このチュートリアルでは、 触る 新しい空のファイルを作成し、さまざまな方法で既存のファイルのタイムスタンプを修正するために使用できるコマンドとさまざまなオプション。