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

СсылкиПравить