【touch】Linuxコマンド_ファイル作成・日付変更をする

「touch」コマンドでは主にファイルやディレクトリの最終更新日を変更することができます。
「最終更新日」は、その対象ファイルやディレクトリを最後に変更した日付となります。

また、この「touch」コマンドはファイルを新規に作成することもできるので、使い方によっては使用頻度の高いコマンドとなります。

「touch」コマンドの使い方(Linux)

「touch」コマンドは日付変更をすることが主な使い方ですが、以下のように新規にファイルを作成することができます。

$ touch test01.txt
$ ls -lF
total 0
-rw-r--r-- 1 root root 0  7月 24 03:24 test01.txt

新規作成は上記のように簡単に作成することが可能です。
以下では日付変更の使い方を紹介します。

ファイルを現在の日付・時刻に変更する

「touch」コマンドを使用して、以下カレントディレクトリ上のファイル「file01.txt」の最終更新日の日付を変更します。

$ ls -lF
total 0
-rw-r--r-- 1 root root 0  7月 18 08:06 file01.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 file02.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 file03.txt

「file01.txt」の中身を確認します。

$ cat file01.txt 
test_touch_command
test_touch_command
test_touch_command

現在の日時を確認します。

$ date
2021年  7月 24日 土曜日 03:37:13 UTC

「touch」コマンドを実行して現在の最新の日付にファイルを更新します。

$ touch file01.txt

対象のファイルが現在の最新の日付に変更されたことが確認できます。

$ ls -lF
total 4
-rw-r--r-- 1 root root 58  7月 24 03:37 file01.txt
-rw-r--r-- 1 root root  0  7月 18 08:06 file02.txt
-rw-r--r-- 1 root root  0  7月 18 08:06 file03.txt

ファイルの中身は変更されていないことが確認できます。

$ cat file01.txt 
test_touch_command
test_touch_command
test_touch_command

ファイルの日付を任意に変更する

「touch」コマンドでは最新の日付にファイルを更新するだけではなく、任意の日付に変更することも可能です。

「file01.txt」ファイルを任意の日付に変更します。

$ ls -lF
total 4
-rw-r--r-- 1 root root 58  7月 24 03:37 file01.txt
-rw-r--r-- 1 root root  0  7月 18 08:06 file02.txt
-rw-r--r-- 1 root root  0  7月 18 08:06 file03.txt

「2021年6月6日6時6分」に日付を変更します。

$ touch -t 202106060606 file01.txt

「file01.txt」ファイルの日付が任意の日付に変更されたことを確認できました。

$ ls -lF
total 4
-rw-r--r-- 1 root root 58  6月  6 06:06 file01.txt
-rw-r--r-- 1 root root  0  7月 18 08:06 file02.txt
-rw-r--r-- 1 root root  0  7月 18 08:06 file03.txt

「touch」コマンドオプション

「touch」コマンドのオプションは以下の通りとなります。

$ touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.

A FILE argument that does not exist is created empty, unless -c or -h
is supplied.

A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.

Mandatory arguments to long options are mandatory for short options too.
  -a                     change only the access time
  -c, --no-create        do not create any files
  -d, --date=STRING      parse STRING and use it instead of current time
  -f                     (ignored)
  -h, --no-dereference   affect each symbolic link instead of any referenced
                         file (useful only on systems that can change the
                         timestamps of a symlink)
  -m                     change only the modification time
  -r, --reference=FILE   use this file's times instead of current time
  -t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time
      --time=WORD        change the specified time:
                           WORD is access, atime, or use: equivalent to -a
                           WORD is modify or mtime: equivalent to -m
      --help     display this help and exit
      --version  output version information and exit

Note that the -d and -t options accept different time-date formats.

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report touch translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/touch>
or available locally via: info '(coreutils) touch invocation'

「touch」コマンドの使い方は以上となります。

最新情報をチェックしよう!