Любая система Linux поставляется с несколькими предустановленными инструментами. Сенсорная команда является одним из таких инструментов. Команда linux touch предназначена для изменения временных меток в метаданных файла, таких как время доступа и модификации. Однако он также широко используется для создания нового пустого файла в нужном месте. При правильном разрешении файла команда touch может изменить метки времени любого файла. Если файл не существовал ранее, то вместо этого он создает файл. В этом руководстве мы углубимся в использование команды touch в Linux.
Предпосылки
Для выполнения действий, описанных в этом руководстве, вам потребуются следующие компоненты.
- Машина под управлением Linux. Если вы новичок в Linux, рассмотрите возможность использования виртуальной машины, чтобы сначала испытать ее. Узнайте больше об установке и использовании Ubuntu в VirtualBox.
- Знакомство с командной строкой (или терминалом). Ознакомьтесь с некоторыми из лучших эмуляторов терминала для Linux.
Синтаксис сенсорной команды
Основная структура сенсорной команды выглядит следующим образом:
$ touch <options> <file_or_dir_name>
Этот инструмент может работать без каких-либо опций. Он также поддерживает несколько вариантов расширенных запросов. Некоторые варианты имеют сокращенные формы. Если для опции требуется дополнительная информация, ее необходимо предоставить.
- Параметры Touch команды
- Временные метки файла
- Использование Touch команды
- Создание файла
- Создание нескольких файлов
- Установка конкретной временной метки
- Установка конкретной временной метки с использованием строки даты
- Изменение времени доступа к файлу
- Изменение времени модификации
- Избегайте создания новых файлов
- Изменение метки времени с помощью эталонного файла
- Заключение
Параметры Touch команды
Вот некоторые из общих параметров, доступных для сенсорной команды.
- —versionили -v : отображает версию программы.
- —help: распечатывает меню справки.
- -a: Изменяет время доступа.
- -m: Изменяет время модификации.
- -no-dereference or -h: изменить временную метку символической ссылки. Узнайте больше о символических ссылках в Linux.
—-c or –no-create: Не создавать файл, если он не существует. - –date=<string> or –d=<string>: Отметка времени изменяется в соответствии со строкой даты.
- –reference=<file> or –r=<file>: Отметка времени изменяется в соответствии с эталонным файлом.
- -t <stamp>: изменяет метку времени. Здесь штамп имеет формат даты/времени.
Временные метки файла
Прежде чем прыгнуть дальше, вам нужно знать о различных типах временных меток, которые есть в каждом отдельном файле.
- Время доступа ( atime): эта временная метка отслеживает, когда файл в последний раз читался какой-либо командой, например, grep и cat.
- Время изменения ( ctime): эта временная метка отслеживает время последнего изменения любого свойства файла. Такие действия, как переименование файла, изменение разрешения или перемещение файла и т. д., изменят его значение.
- Время модификации ( mtime): эта метка времени отслеживает, когда содержимое файла было изменено в последний раз.
Чтобы просмотреть значение atime, используйте следующую команду:
$ ls -lu
Чтобы просмотреть значение ctime, используйте следующую команду:
$ ls -lc
Чтобы просмотреть значение mtime, используйте следующую команду:
$ ls -l
Использование Touch команды
Мы рассмотрели все основы сенсорной команды. Пришло время привести их в действие.
Создание файла
Это, безусловно, одно из самых популярных применений сенсорной команды. Чтобы создать новый файл, выполните следующую команду:
$ touch <file_name>
Например, создайте новый файл test.txt :
$ touch test.txt
Как упоминалось ранее, если файл не существует, touch создает его автоматически. Подтвердите изменение:
$ ls -l
Создание нескольких файлов
С помощью сенсорной команды вы можете создавать несколько файлов одновременно. Для этого используйте следующую структуру команды:
$ touch <filename_1> <filename_2>
Например, создайте два файла test_1.txt и test_2.txt :
$ touch test_1.txt test_2.txt
Проверьте изменения:
$ ls -l
Мы также можем создавать большие пакеты файлов (при условии, что имена файлов последовательные). Для этого введите первый и последний элемент элемента в фигурных скобках. Например, чтобы создать файлы от test_1.txt до test_10.txt, используйте следующую команду:
$ touch test_{1..10}.txt
Подтвердите действие:
$ ls -l
Это также работает для алфавитов. Например, чтобы создать файлы от test_a.txt до test_b.txt, используйте следующую команду:
$ touch test_{a..j}.txt
Подтвердите действие:
$ ls -l
Установка конкретной временной метки
Чтобы установить конкретную метку времени для файла, структура команды выглядит следующим образом:
$ touch -t <timestamp> <file_name>
имеет определенную структуру.
$ [[CC]YY]MMDDhhmm[.ss]
Здесь,
- CC: Первые две цифры года.
- YY: Две последние цифры года.
- ММ: Месяц
- DD: День месяца
- hh: Час
- mm: Минута
- ss: Секунды
Элементы в квадратных скобках являются необязательными. Если значение YY равно 0-68, то CC автоматически принимается равным 20. Если значение YY равно 69-99, то CC принимается равным 19.
Давайте введем это в действие. Измените временную метку test.txt на 1 января 1999 г. (12:00).
$ touch -t 199901011200 test.txt
Проверьте изменения:
$ ls -l —full-time test.txt
Установка конкретной временной метки с использованием строки даты
Более удобный способ изменить метку времени — использовать строки даты. Синтаксис использования строк даты следующий:
$ touch -d <date_string> <file_name>
Одним из преимуществ использования строки даты является ее гибкость. Он поддерживает различные удобочитаемые текстовые формы, например,
- Относительное время: «5 лет назад», «вчера», «в следующий вторник» и т. д.
- Календарные даты: «1 января 1969 г.», «2 февраля 2022 г.» и т. д.
- Дни недели: «воскресенье», «понедельник» и т. д.
- Время суток: «2:22», «12:22» и т. д.
Давайте изменим отметку времени в файле test.txt на «1 января 2011 года».
$ touch -d «1 January 2011» test.txt
Подтвердите изменение:
$ ls -l —full-time test.txt
Изменение времени доступа к файлу
Есть два способа изменить время файла.
Изменение времени доступа к файлу на текущее
Следующая сенсорная команда установит отметку времени доступа к целевому файлу на текущее время:
$ touch -a <file_name>
Например, измените время файла test.txt на текущее время:
$ touch -a test.txt
Проверьте изменение:
$ ls -lu —full-time test.txt
Явное изменение времени доступа к файлу
Мы также можем явно указать время доступа к файлу. Для этого мы объединим флаги «-a» и «-t». Структура команды будет выглядеть так:
$ touch -at <timestamp> <file_name>
Например, следующая команда установит время доступа к файлу test.txt на 1 января 1999 года:
$ touch -at 9901010000 test.txt
Подтвердите изменение:
$ ls -lu —full-time test.txt
Изменение времени модификации
Используя команду touch, вы можете изменить время модификации ( mtime ) файла. Есть два способа сделать это.
Изменение mtime на текущее
Следующая сенсорная команда установит mtime файла на текущее время.
$ touch -m <file_name>
Например, измените mtime файла test.txt на текущее время:
$ touch -m test.txt
Подтвердите изменение:
$ ls -l —full-time test.txt
Явное изменение mtime
Мы можем комбинировать флаги «-m» и «-t», чтобы установить пользовательское время mtime. Синтаксис следующий:
$ touch -mt <timestamp> <file_name>
Например, изменение mtime на «1 января 1999 года» будет выглядеть так:
$ touch -mt 9901010000 test.txt
Проверьте изменения:
$ ls -l —full-time test.txt
Изменение mtime и atime
С помощью сенсорной команды мы можем использовать несколько вариантов. Используя эту функцию, мы можем установить mtime и atime файла в одной команде. Синтаксис будет выглядеть так:
$ touch -am <file_name>
Обратите внимание, что в этом примере время изменено на текущее время. Если вам нужно конкретное время, вам нужно использовать флаг «-t» для конкретной метки времени.
Избегайте создания новых файлов
При использовании с флагом «-c» команда touch не создаст файл, если он не существует.
$ touch -c <file_name>
Изменение метки времени с помощью эталонного файла
Мы можем указать touch использовать временные метки эталонного файла. Структура команды следующая:
$ touch -r <reference_file> <file_name>
Целевой файл унаследует метки времени из эталонного файла.
Заключение
Утилита touch — ключевая терминальная программа при работе с файлами в Linux. В этом руководстве демонстрируется общее использование сенсорной команды. Для получения более подробной информации о доступных параметрах посетите справочную страницу:
$ man touch