touch
Утилита touch появилась в операционной системе AT&T UNIX Version 7. Версия утилиты touch, которая идет в комплекте с GNU coreutils, была разработана Полом Рабином, Арнольдом Роббинсом, Джимом Кингдоном, Девидом МакКинзи и Рэнди Смитом.
Согласно POSIX утилита touch изменяет время последнего изменения файла или время последнего доступа к нему. Имя файла или путь к нему передается в качестве аргумента. Если файл не существует, утилита создает пустой файл с указанным именем и устанавливает время последнего изменения и последнего доступа в значение, переданное в качестве аргумента. Если аргумент времени не задан, используется текущее время.
Synopsis
touch [-acfhm] [-r файл] [-t [[CC]YY]MMDDhhmm[.ss]] файл
-a
– Устанавливает время последнего доступа к файлу. Время последнего изменения не устанавливается, если явно не задан ключ-m
-c
– Указывает утилите не создавать файл, если он не существует, при этом никаких сообщений об ошибке показано не будет;-d
– обновить время доступа и модификации;-f
– Пытается обновить информацию о времени, даже если права доступа файла не позволяют делать;-h
– Указывает утилите не изменять данные о файле, если он задан символической ссылкой;-m
– Устанавливает время последнего изменения файла;-r file
– Использовать значения времени из файла, заданного аргументом file;-t time
– Устанавливает время последнего изменения и доступа в соответствии с указанным форматом time.
Формат даты, указанный в ключе -t
, задается в соответствии с шаблоном [[СС]YY]MMDDhhmm[.ss]
:
СС
– первые две цифры года (век).YY
– последние две цифры года. Если параметр CC не задан и значение YY находится в пределах 69 и 99, то тогда СС устанавливается равным 19, в противном случае используется 20.MM
– двузначный номер месяца.DD
– двузначный номер дня.hh
– значение часов даты.mm
– значение минут даты.ss
– значение секунд даты.
Examples
Команда создает файл myfile.txt
и устанавливает время последнего изменения и доступа в текущее время в системе; если файл существует – обновляет время последнего изменения и доступа, не изменяя при этом содержимого файла:
touch myfile.txt
Устанавливает дату последнего изменения и доступа в 8:46:26 31 января 2022 г.:
touch -t 202201310846.26 index.html touch -d '2022-01-31 8:46:26' index.html touch -d 'Jan 31 2022 8:46:26' index.html
Есть возможность использовать отметку времени другого файла. Обновим временную метку файла text2.log
на временную метку файла a.txt
;
touch -r a.txt text2.log
Создаем файл, используя указанное время. Присвоим файлу war.log временную отметку 5:00:00 a.m. 24 февраля 2022 года;
touch -t 202202240500.00 war.log root@slave1:~# stat war.log File: war.log Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 142592 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-02-24 05:00:00.000000000 +0000 Modify: 2022-02-24 05:00:00.000000000 +0000 Change: 2022-04-27 11:11:45.856391295 +0000 Birth: 2022-04-27 11:11:45.856391295 +0000