Команда touch позволяет обновлять временные метки в существующих файлах и каталогах, а также создавать новые пустые файлы.
В этом руководстве мы покажем вам, как использовать сенсорную команду, на практических примерах и подробных объяснениях наиболее распространенных параметров команд.
Содержание
Метки времени файлов Linux
Прежде чем перейти к использованию сенсорной команды, давайте начнем с обзора временных меток файлов в Linux.
Файл в Linux имеет три отметки времени:
- atime (время доступа) — время последнего доступа / открытия файла какой-либо командой или приложением, например cat , vim или grep .
- mtime (время изменения) — время последнего изменения содержимого файла.
- ctime (время изменения) — время последнего изменения атрибута или содержимого файла. Атрибут включает права доступа к файлу, право собственности на файл или местонахождение файла.
Чтобы отобразить статус файла, включая временные метки, используйте команду stat
.
stat file_name
Для создания нового файла требуются права на запись в родительский каталог. В противном случае вы получите сообщение об ошибке в разрешении отказано.
Как использовать сенсорную команду
В простейшей форме при использовании без каких-либо опций, если имя файла, указанное в качестве аргумента, не существует, touch создаст новый файл.
Если файл уже существует, коснитесь, чтобы изменить время последнего доступа и модификации файла на текущее время.
Например, если файл file1
не существует, следующая команда создаст его, иначе она изменит его временные метки:
touch file1
Чтобы создать или изменить несколько файлов одновременно, укажите имена файлов в качестве аргументов:
touch file1 file2 file3
Если вы не хотите, чтобы команда touch создавала новые файлы, используйте параметр -c
( --no-create
).
Например, если существует файл file1
следующая команда изменит временные метки файла, в противном случае она ничего не сделает:
touch -c file1
Изменение только времени доступа или модификации
По умолчанию, если параметр не используется, прикосновение обновит время последнего доступа к файлу и времени изменения до текущего времени. Используя параметры -a
и -m
, вы можете изменить только одну из этих временных меток.
Меняем только время доступа
Используйте параметр -a
чтобы изменить только время доступа к файлу:
touch -a file1
Измените только время изменения
Используйте параметр -m
чтобы изменить время изменения файла:
touch -m file1
При изменении времени изменения время изменения также будет обновлено.
Установка конкретных отметок времени
Сенсорная команда также позволяет нам обновлять или создавать файл с определенным временем, отличным от текущего времени.
Используйте параметр -d
( --date=
), чтобы указать строку даты и использовать ее вместо текущего времени.
Например, чтобы изменить время последнего доступа и модификации file1
на 1 июня 2018 11:02, вы должны использовать следующую команду:
touch -d '1 June 2018 11:02' file1
Строку даты необходимо заключить в одинарные кавычки.
Вы также можете указать частичную строку даты и времени для сенсорной команды. Предоставляя только дату, автоматически меняет год на текущий:
touch -d '12 June' file1
Используйте параметр -t
чтобы указать отметку времени и использовать ее вместо текущего времени. Аргумент отметки времени должен быть в следующем формате:
use [[CC]YY]MMDDhhmm[.ss]
Например, следующая команда установит время последнего доступа и модификации file1
на 1 июня 11:02 текущего года.
touch -t 06011102 file1
Использование метки времени другого файла
Параметр -r
( --reference=
) позволяет нам указать справочный файл и использовать его временные метки вместо текущего времени.
Например, следующая команда скажет touch использовать время file1
для file2
:
touch -r file1 file2
Изменение метки времени символической ссылки
По умолчанию, если вы используете сенсорную команду для символической ссылки, она изменяет временные метки файла, на который она указывает.
Используйте -h
( --no-dereference
), чтобы изменить метку времени символической ссылки.
Например, чтобы изменить временные метки символической ссылки symlink1
вы должны использовать:
touch -h symlink1
Выводы
К настоящему времени вы должны хорошо понимать, как использовать сенсорную команду Linux.