GNU/Linux >> Linux の 問題 >  >> Linux

9Linuxでの便利なtouchコマンドの例

Touchコマンドは、空のファイルを作成するために使用され、UnixおよびLinuxシステム上の既存のファイルのタイムスタンプも変更します。ここでタイムスタンプを変更するということは、ファイルとディレクトリのアクセス時間と変更時間を更新することを意味します。

タッチコマンドで使用される構文とオプションを見てみましょう

構文 :#touch {options} {file}

タッチコマンドで使用されるオプション

この記事では、Linuxで役立つ9つのタッチコマンドの例を紹介します。

例:1touchを使用して空のファイルを作成する

Linuxシステムでtouchコマンドを使用して空のファイルを作成するには、touchに続けてファイル名を入力します。例を以下に示します。

[[email protected] ~]# touch devops.txt
[[email protected] ~]# ls -l devops.txt
-rw-r--r--. 1 root root 0 Mar 29 22:39 devops.txt
[[email protected] ~]#

例:2touchを使用して空のファイルをまとめて作成する

テストのために空のファイルをたくさん作成しなければならないシナリオがいくつかある可能性があります。これは、タッチコマンドを使用して簡単に実現できます。

[[email protected] ~]# touch sysadm-{1..20}.txt

上記の例では、sysadm-1.txtという名前の20個の空のファイルをsysadm-20.txtに作成しました。要件に基づいて、名前と番号を変更できます。

例:3ファイルとディレクトリのアクセス時間の変更/更新

devops.txt」というファイルのアクセス時間を変更するとします。 「、これを行うには、「 -a」を使用します ‘タッチコマンドのオプションの後にファイル名が続きます。例を以下に示します

[[email protected] ~]# touch -a devops.txt
[[email protected] ~]#

次に、「stat」コマンドを使用して、ファイルのアクセス時間が更新されているかどうかを確認します

[[email protected] ~]# stat devops.txt
  File: ‘devops.txt’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 67324178    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2018-03-29 23:03:10.902000000 -0400
Modify: 2018-03-29 22:39:29.365000000 -0400
Change: 2018-03-29 23:03:10.902000000 -0400
 Birth: -
[[email protected] ~]#

ディレクトリのアクセス時間を変更する

/ mntの下に「nfsshare」フォルダがあると仮定します。次のコマンドを使用して、このフォルダのアクセス時間を変更しましょう。

[[email protected] ~]# touch -a /mnt/nfsshare/
[[email protected] ~]#
[[email protected] ~]# stat /mnt/nfsshare/
  File: ‘/mnt/nfsshare/’
  Size: 6               Blocks: 0          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 2258        Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:mnt_t:s0
Access: 2018-03-29 23:34:38.095000000 -0400
Modify: 2018-03-03 10:42:45.194000000 -0500
Change: 2018-03-29 23:34:38.095000000 -0400
 Birth: -
[[email protected] ~]#

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

ファイルが存在する場合はそのアクセス時間を変更して、ファイルの作成を避けたい場合があります。 「-c」を使用する ‘touchコマンドのオプション。ファイルが存在する場合はアクセス時間を変更でき、存在しない場合はファイルを作成しません。

[[email protected] ~]# touch -c sysadm-20.txt
[[email protected] ~]# touch -c winadm-20.txt
[[email protected] ~]# ls -l winadm-20.txt
ls: cannot access winadm-20.txt: No such file or directory
[[email protected] ~]#

例:5ファイルとディレクトリの変更時刻を変更する

-m」を使用する ‘touchコマンドのオプションで、ファイルとディレクトリの変更時間を変更できます。

「devops.txt」というファイルの変更時刻を変更しましょう

[[email protected] ~]# touch -m devops.txt
[[email protected] ~]#

次に、statコマンドを使用して、変更時刻が変更されたかどうかを確認します。

[[email protected] ~]# stat devops.txt
  File: ‘devops.txt’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 67324178    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2018-03-29 23:03:10.902000000 -0400
Modify: 2018-03-29 23:59:49.106000000 -0400
Change: 2018-03-29 23:59:49.106000000 -0400
 Birth: -
[[email protected] ~]#

同様に、ディレクトリの変更時間を変更できます。

[[email protected] ~]# touch -m /mnt/nfsshare/
[[email protected] ~]#

例:6アクセスと変更の時間を一度に変更する

-am」を使用します アクセスと変更を一緒にまたは一度に変更するためのtouchコマンドの」オプション。例を以下に示します。

[[email protected] ~]# touch -am devops.txt
[[email protected] ~]#

統計を使用してアクセス時間と変更時間を相互検証します

[[email protected] ~]# stat devops.txt
  File: ‘devops.txt’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 67324178    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2018-03-30 00:06:20.145000000 -0400
Modify: 2018-03-30 00:06:20.145000000 -0400
Change: 2018-03-30 00:06:20.145000000 -0400
 Birth: -
[[email protected] ~]#

例:7アクセスと変更の時刻を特定の日時に設定します

touchコマンドを使用してファイルとディレクトリのアクセスと変更の時刻を変更する場合は常に、現在の時刻をそのファイルまたはディレクトリのアクセスと変更の時刻として設定します。

ファイルのアクセスおよび変更時刻として特定の日時を設定するとします。これは、タッチコマンドの「-c」および「-t」オプションを使用して実現できます。

日付と時刻は、{CCYY} MMDDhhmm.ss

の形式で指定できます。

場所:

  • CC –年の最初の2桁
  • YY –年の2桁目
  • MM –月(01〜12)
  • DD –月の日(01-31)
  • hh –その日の時間(00-23)
  • mm –時間の分(00-59)

devops.txtファイルのアクセスと変更の時刻を将来の日時(2025年、10か月、19日、18時間、20分)に設定しましょう

[[email protected] ~]# touch -c -t 202510191820 devops.txt

statコマンドを使用して、更新アクセスと変更時間を表示します。

日付文字列に基づいてアクセスと変更の時間を設定し、touchコマンドで「-d」オプションを使用してから、日付文字列の後にファイル名を指定します。例を以下に示します。

[[email protected] ~]# touch -c -d "2010-02-07 20:15:12.000000000 +0530" sysadm-29.txt
[[email protected] ~]#

statコマンドを使用してステータスを確認します

[[email protected] ~]# stat sysadm-20.txt
  File: ‘sysadm-20.txt’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 67324189    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2010-02-07 20:15:12.000000000 +0530
Modify: 2010-02-07 20:15:12.000000000 +0530
Change: 2018-03-30 10:23:31.584000000 +0530
 Birth: -
[[email protected] ~]#

注: 上記のコマンドで「-c」を指定しない場合、touchコマンドは、システムに存在しない場合に備えて新しいファイルを作成し、コマンドに記載されているタイムスタンプを設定します。

例:8参照ファイル(-r)を使用してタイムスタンプをファイルに設定します

touchコマンドでは、参照ファイルを使用してファイルまたはディレクトリのタイムスタンプを設定できます。 「devops.txt」ファイルに「sysadm-20.txt」ファイルと同じタイムスタンプを設定したいとします。これは、タッチで「-r」オプションを使用して簡単に実現できます。

構文: #touch -r {reference-file} actual-file

[[email protected] ~]# touch -r sysadm-20.txt devops.txt
[[email protected] ~]#

例:9シンボリックリンクファイルのアクセスと変更時刻の変更

デフォルトでは、touchコマンドを使用してシンボリックリンクファイルのタイムスタンプを変更しようとすると、元のファイルのタイムスタンプのみが変更されます。シンボリックリンクファイルのタイムスタンプを変更する場合は、「-h」を使用してこれを実現できます。タッチコマンドのオプション

構文: #touch-h{シンボリックリンクファイル}

[[email protected] opt]# ls -l /root/linuxgeeks.txt
lrwxrwxrwx. 1 root root 15 Mar 30 10:56 /root/linuxgeeks.txt -> linuxadmins.txt
[[email protected] ~]# touch -t 203010191820 -h linuxgeeks.txt
[[email protected] ~]# ls -l linuxgeeks.txt
lrwxrwxrwx. 1 root root 15 Oct 19  2030 linuxgeeks.txt -> linuxadmins.txt
[[email protected] ~]#

このチュートリアルは以上です。これらの例がタッチコマンドの理解に役立つことを願っています。貴重なフィードバックやコメントをぜひ共有してください。

続きを読む: Linuxでの17の便利なrsync(リモート同期)コマンドの例


Linux
  1. 7 Linux df コマンドの例

  2. 8 Linux TR コマンドの例

  3. Linux での touch コマンドの例

  1. Linuxでの12の便利なWgetコマンドの例

  2. Linuxでのlsコマンド:17の便利な例の説明

  3. LinuxでのTouchコマンドの10の実用例

  1. Linuxでの20の便利なDockerコマンドの例

  2. 14Linuxで役立つ「ls」コマンドの例

  3. 14 Linux での便利な「cat」コマンドの例