
Команда touch позволяет обновлять временные метки существующих файлов и каталогов, а также создавать новые, пустые файлы.
В этом руководстве мы покажем вам, как использовать команду touch, с помощью практических примеров и подробных объяснений наиболее распространенных параметров команды.
Временные метки файлов Linux
Прежде чем приступить к использованию команды touch, давайте начнем с обзора временных меток файлов в 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
Изменение только времени доступа или модификации
По умолчанию, если ни один параметр не указан, touch обновит время последнего доступа и изменения файла на текущее время. Используя параметры -a и -m , можно изменить только одну из этих временных меток.
Изменить только время доступа
Используйте опцию -a , чтобы изменить только время доступа к файлу:
touch -a file1
Измените только время изменения
Используйте опцию -m , чтобы изменить время изменения файла:
touch -m file1
При изменении времени изменения время изменения также будет обновлено.
Установка определенных временных меток
Команда touch также позволяет нам обновлять или создавать файл с определенным временем, отличным от текущего времени.
Используйте опцию -d ( --date= ), чтобы указать строку даты и использовать ее вместо текущего времени.
Например, чтобы изменить время последнего доступа и изменения file1 на 1 июня 2018 г. 11:02, используйте следующую команду:
touch -d '1 June 2018 11:02' file1
Строку даты необходимо заключить в одинарные кавычки.
Вы также можете указать в команде touch часть строки даты и времени. Если указать только дату, год автоматически изменится на текущий:
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
Изменение временной метки символической ссылки
По умолчанию, если вы используете команду touch для символической ссылки, она изменит временные метки файла, на который она ссылается.
Используйте опцию -h ( --no-dereference ), чтобы изменить временную метку символической ссылки.
Например, чтобы изменить временные метки символической ссылки symlink1 вы можете использовать:
touch -h symlink1
Заключение
К настоящему моменту вы должны хорошо понимать, как использовать команду Linux touch.
Связанные руководства