touch
ИМЯ
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.
ПРИМЕР ИСПОЛЬЗОВАНИЯ
Первой командой выводим список файлов.
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 и проверяем изменения.
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков