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

Ссылки[править]