touch

touch

Утилита touch появилась в операционной системе AT&T UNIX Version 7. Версия утилиты touch, которая идет в комплекте с GNU coreutils, была разработана Полом Рабином, Арнольдом Роббинсом, Джимом Кингдоном, Девидом МакКинзи и Рэнди Смитом.

Согласно POSIX утилита touch изменяет время последнего изменения файла или время последнего доступа к нему. Имя файла или путь к нему передается в качестве аргумента. Если файл не существует, утилита создает пустой файл с указанным именем и устанавливает время последнего изменения и последнего доступа в значение, переданное в качестве аргумента. Если аргумент времени не задан, используется текущее время.

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 – значение секунд даты.

Команда создает файл 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
  • touch.txt
  • Последнее изменение: 2022/04/27 14:13
  • admin