ИМЯ

touch — изменяет временные штампы файла

ОБЗОР

touch [-acm][-r ref_file|-t время] [—]файл…

Версия GNU:

touch [-acfm] [-r файл] [-t decimtime] [-d time] [—time={atime,access,use,mtime,modify}] [—date=время] [—reference=файл] [—no-create] [—help] [—version] [—] файл…

Устаревшая версия:

touch [-acm][ugly_time] файл…

ОПИСАНИЕ

touch изменяет время последнего доступа и/или время последней модификации каждого заданного файла. Эти временные штампы устанавливаются в текущее время; или, если задана опция -r, то эти штампы устанавливаются в те же, что имеет файл ref_file; или, если задана опция -t, то эти штампы устанавливаются на заданное время. Оба штампа изменяются, если не задана ни одна из опций -a и -m или если заданы они обе. Если задана только опция -a или только -m, то изменяться будет, соответственно, только время последнего доступа или время последней модификации. Если заданный файл еще не существует,то он создается (как пустой файл с правами доступа 0666, с учетом umask),если не задана опция -c.

ОПЦИИ POSIX

-a Изменить время последнего доступа к файлу.
-c Не создавать файл.
-m Изменять время последней модификации файла.
-r ref_file Использовать соответствующий временной штамп от файла ref_file в качестве нового значения для изменяемого временного штампа(или штампов).
-t время Использовать заданное время в качестве нового значения для изменяемого временного штампа (или штампов). Аргумент является десятичным числом вида[[ВВ]ГГ]ММДДччмм[.СС] с очевидными обозначениями (ВВ — век, ГГ — год, ММ — месяц, ДД — день, чч — часы, мм — минуты, СС — секунды). Если ВВ не задан,то год ВВГГ берется из диапазона 1969-2068. Если СС не задано, то берется 0. Секунды могут быть заданы в диапазоне 0-61, чтобы можно было указать високосную секунду. Считается, что результирующее время соответствует часовому поясу, заданному в переменной окружения TZ. Если в результате получилось время до 1 января 1970 года, то будет выдана ошибка.
Завершает список опций.

ДЕТАЛИ ВЕРСИИ POSIX

Вторая форма вызова имеет неудачный синтаксис, который может вызвать некоторую двусмысленность, так как непонятно, что именно задает аргумент ugly_time: время или файл. Если не указаны опции -r и -t, и задано не менее двух аргументов, причем первый аргумент является восьми- или десятизначным числом, то считается, что аргумент ugly_time задает время. Формат ugly_time выглядит как ММДДччмм[гг], причем гг в диапазоне 69-99, означает 1969-1999, а случай, когда гг не задан, означает текущий год. Данная форма вызова устарела.

ДЕТАЛИ ВЕРСИИ GNU

Если первый файл может быть правильным аргументом для опции -t, и временной штамп не задан с помощью опций -d, -r или -t, и не задан аргумент `—‘, то этот файл интерпретируется как временной штамп для других файлов, а не как имя файла. Если задано изменение как времени последнего доступа, так и времени последней модификации файла на текущее время, то touch может изменять эти временные штампы для файлов, которыми пользователь не владеет, но в которые у него есть права на запись. Во всех других случаях, пользователь должен владеть этими файлами.

ОПЦИИ GNU

-a, —time=atime, —time=access, —time=use Изменять только время последнего доступа.
-c, —no-create Не создавать файлы, которые не существуют.
-d, —date=время Использовать время вместо текущего времени. Оно может содержать имена месяцев, часовые пояса, `am’ и `pm’, и т. д.
-f Игнорируется; для совместимости с BSD версией touch(1).
-m, —time=mtime, —time=modify Изменять только время последней модификации.
-r file, —reference=файл Использовать время указанного файла вместо текущего времени.
-t decimtime Здесь decimtime имеет формат ММДДччмм[[ВВ]ГГ][.сс] Использовать аргумент (месяц, день, часы, минуты, необязательный век, год, секунды) вместо текущего времени. Заметим, что этот формат нарушает спецификацию POSIX.

СТАНДАРТНЫЕ ОПЦИИ GNU

—help Выдать подсказку на стандартный вывод и успешно завершиться.
—version Выдать информацию о версии на стандартный вывод и успешно завершиться.
Служит для обозначения конца списка опций.

ОКРУЖЕНИЕ

Для интерпретации явно заданного времени используется переменная TZ. При работе обычным образом используются значения переменных LANG, LC_ALL, LC_COLLATE, LC_CTYPE и LC_MESSAGES.

СОВМЕСТИМОСТЬ

POSIX 1003.2 описывает синтаксис для аргумента опции -t, который отличается от того, что используется в реализации GNU.

ПРИМЕР ИСПОЛЬЗОВАНИЯ

создать файл fornap

Первой командой выводим список файлов.

ls
touch fornap
ls

Команда touch fornap создаст файл fornap, если он не существует, и изменит время последней модификации на текущее.Это очень часто используется для управления действиями программ make.
Проверяем командой ls, что файл создался.

Меняем время

ls -l
touch -t 199803081259 fornap
ls -l

Командой ls -l смотрим временной штамп файла fornap.
Изменяем время доступа файла fornap на 8 марта 1998 года 12 часов и 59 минут командой touch -t 199803081259 fornap.
Командой ls -l смотрим временной штамп файла fornap и проверяем изменения.

ПЕРЕВОД

Перевёл с английского Виктор Вислобоков