
Как в linux у файла изменить время последнего доступа? Как установить время модификации файла? Как в системе linux создать пустой файл? Об этом мы поговорим в данной статье, рассказывая о linux утилите touch.
Описание утилиты touch
Linux утилита touch предназначена для изменения отметок времени доступа и модификации файлов. Полную документацию можно посмотреть по данной ссылке.
Использование команды touch
touch [OPTION] … FILE …
Linux команда touch обновляет временные метки доступа и модификации файлов FILE на текущее. При этом, если указанный файл не существует, то будет создан новый пустой файл. Пусть у нас имеется обычный текстовый файл test.txt:
$ ls -l
total 4
-rw-rw-r--. 1 user user 2035 Oct 26 14:30 test.txt
Воспользуемся утилитой touch и посмотрим не результат:
$ touch test.txt
$ ls -l
total 4
-rw-rw-r--. 1 user user 2035 Oct 26 14:35 test.txt
Если же мы укажем touch в качестве аргумента несуществующий файл, то он будет создан (пустым):
$ touch test2.txt
$ ls -l
total 4
-rw-rw-r--. 1 user user 0 Oct 26 14:41 test2.txt
-rw-rw-r--. 1 user user 2035 Oct 26 14:35 test.txt
Из-за этой особенности linux утилиту touch часто используют именно для создания новых файлов.
Параметры команды touch
Linux утилита touch может принимать следующие опции:
-a – изменяет только последнее время доступа к файлу
-c, –no-create – не создает никаких файлов, если они не существуют
-d, –date=String – задать временную метку (в виде строки), которая будет использована вместо текущего времени:
$ touch -d '25 Oct 2020 15:00' test.txt
$ ls -l
total 4
-rw-rw-r--. 1 user user 0 Oct 26 14:41 test2.txt
-rw-rw-r--. 1 user user 2035 Oct 25 15:00 test.txt
-h, –no-dereference – изменяет временные метки символических ссылок вместо файлов, на которые есть ссылки (работает только в системах, которые могут изменять временные метки символической ссылки)
-m – изменяет только время модификации файла
-r, –reference=FILE – использовать время указанного файла вместо текущего времени:
$ touch -r test.txt test2.txt
$ ls -l
total 4
-rw-rw-r--. 1 user user 0 Oct 25 15:00 test2.txt
-rw-rw-r--. 1 user user 2035 Oct 25 15:00 test.txt
-t STAMP – использовать временную метку [[CC]YY]MMDDhhmm[.ss] вместо текущего времени:
$ touch -t 202010251513 test.txt
$ ls -l
total 4
-rw-rw-r--. 1 user user 0 Oct 25 15:00 test2.txt
-rw-rw-r--. 1 user user 2035 Oct 25 15:13 test.txt
–time=WORD – изменить только время доступа или модификации. Эквивалентно опциям -a и -m, только в данном случае вместо WORD указывается access / atime или modify / mtime.
–help – показать справку
–version – показать версию утилиты:
$ touch --version
touch (GNU coreutils) 8.30
Ещё больше полезных Linux-утилит вы можете найти на данной странице.