touch
touch — команда Unix, предназначенная для установки времени последнего изменения файла или доступа в текущее время. Также используется для создания пустых файлов.
История
Утилита touch появилась в операционной системе AT&T UNIX Version 7. Версия утилиты touch, которая идет в комплекте с GNU coreutils, была разработана Полом Рабином, Арнольдом Роббинсом, Джимом Кингдоном, Девидом МакКинзи и Рэнди Смитом.
Спецификация
Согласно POSIX утилита touch изменяет время последнего изменения файла или время последнего доступа к нему. Имя файла или путь к нему передается в качестве аргумента. Если файл не существует, утилита создает пустой файл с указанным именем и устанавливает время последнего изменения и последнего доступа в значение, переданное в качестве аргумента. Если аргумент времени не задан, используется текущее время.
Синтаксис команды
touch [-acfhm] [-r файл] [-t [[CC]YY]MMDDhhmm[.ss]] файл
-a
Устанавливает время последнего доступа к файлу. Время последнего изменения не устанавливается, если явно не задан ключ -m
-c
Указывает утилите не создавать файл, если он не существует, при этом никаких сообщений об ошибке показано не будет.
-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 — значение секунд даты.
В разных UNIX-подобных системах синтаксис команды может отличаться. Например, GNU touch содержит опцию -d, которая позволяет устанавливать дату в форматах, отличающихся от упомянутого выше.
Примеры
Создает файл myfile.txt и устанавливает время последнего изменения и доступа в текущее время в системе; если файл существует — обновляет время последнего изменения и доступа, не изменяя при этом содержимого файла:
# touch myfile.txt
Устанавливает дату последнего изменения и доступа в 8:46:26 31 января 2007 г.:
# touch -t 200701310846.26 index.html # touch -d '2007-01-31 8:46:26' index.html # touch -d 'Jan 31 2007 8:46:26' index.html