Команда touch в linux. Полный обзор

Команда touch в linux.

Консольная команда touch в linux представляет собой мощную и многофункциональную утилиту командной строки в Linux встроенную в оболочку Bash, предназначенную для управления временными метками (timestamp) файлов. Название «touch» (по-русски «коснуться») весьма наглядно описывает ее основную функцию — изменение времени доступа и модификации файлов. Однако, она способна делать гораздо больше, чем просто обновлять временные метки. Давайте рассмотрим ее основные возможности и практическое применение.

  1. Создание новых файлов: можно создать пустой файл, если он еще не существует. Это полезно, например, при создании временных файлов или файлов для дальнейшей записи данных.
  2. Обновление временных меток: может использоваться для изменения времени доступа и модификации существующего файла на текущее время. Это может пригодиться, например, при отслеживании последнего доступа к файлу.
  3. Управление временными метками: С помощью опций touch, вы можете устанавливать временные метки в произвольные значения, что полезно, например, при восстановлении файлов из резервной копии.
  4. Автоматизация задач: Команда touch часто используется в скриптах и автоматизированных задачах для управления временными метками файлов и каталогов.
  5. Изменение времени доступа для символических ссылок: может изменять временные метки символических ссылок, что может быть полезно для определенных задач.
  6. Интервальное обновление времени: можно обновлять временные метки файлов и каталогов в определенные моменты времени, что полезно, например, в задачах ротации журналов и архивирования данных.

Синтаксис

Синтаксис команды touch достаточно прост, и она может быть использована с различными опциями и аргументами. Основной формат команды выглядит следующим образом:

Где:

  • ОПЦИИ: Это опциональные аргументы, которые определяют, какие действия будет выполнять команда touch. Ниже мы подробно рассмотрим доступные опции.
  • ФАЙЛ…: Это список файлов, для которых вы хотите изменить временные метки. Вы можете указать один или несколько файлов, разделяя их пробелами.

Опции

Команда touch также может использоваться с различными опциями. Давайте подробнее рассмотрим доступные опции:

  • -a — Изменяет только временную метку доступа (atime) файла, не трогая временную метку модификации (mtime).
  • -c или —no-create — Не создавать файл, если он не существует.
  • -d или —date=STRING — Позволяет указать желаемую временную метку в формате STRING или СТРОКА вместо текущей. Формат временной метки STRING подробно описан в справке.
  • -f — Игнорируется и оставлена для совместимости с другими командами. В touch она не выполняет никаких действий.
  • -h или —no-dereference — Изменяет временные метки символических ссылок, а не файлов, на которые они ссылаются.
  • -m — Изменяет только временную метку модификации (mtime) файла, не трогая временную метку доступа (atime).
  • -r FILE или —reference=FILE — Устанавливает временные метки файла из другого файла FILE, вместо использования текущего времени.
  • -t STAMP — Позволяет установить временную метку вручную в формате [[CC]YY]MMDDhhmm[.ss] в кириллическом варианте так [[ВВ]ГГ]ММДДччмм[.сс].
  • —time=WORD — Позволяет явно указать, какую временную метку следует изменить. WORD или СЛОВО может быть access, atime, use, modify или mtime.
  • —help — Отображает справочную информацию о команде touch и ее опциях.
  • —version — Отображает информацию о версии утилиты touch.

Для получения подробной официальной справки по команде укажите — man touch .

С использованием различных опций и аргументов, можно создавать файлы и гибко управлять временными метками. В дальнейших разделах рассмотрим конкретные примеры использования этих опций для различных задач.

Как создавать пустые файлы

Создание пустых файлов полезно, когда вам нужно создать файл без какого-либо содержимого, но вы хотите, чтобы он существовал. Для создания пустого файла воспользуйтесь следующим синтаксисом:

Где имя_файла — это имя файла, который вы хотите создать. Например, чтобы создать пустой файл с именем «example.txt», выполните команду:

После выполнения этой команды, файл «example.txt» будет создан в текущей директории.

Создание файла с помощью touch
Генерация нескольких пустых файлов

Вы можете создавать одновременно несколько пустых файлов, перечислив их имена через пробел. Например:

Читайте также:  Ventoy программа для создания мультизагрузочной флешки в linux и Windows

Это создаст три пустых файла: «file1.txt», «file2.txt» и «file3.txt».

Демонстрация создания нескольких файлов с помощью команды touch.

Изменение временных меток файла на текущее

При помощи touch также можно изменять временные метки файла. Они включают время последнего доступа (atime),  время последней модификации (mtime) и ctime (время изменения) относится к времени последнего изменения атрибутов или содержимого файла. Эти атрибуты включают в себя права доступа, владельца файла, группу и местоположение файла.

Чтобы изменить временную метку файла используйте синтаксис:

Где имя_файла — это имя файла, чьи временные метки вы хотите изменить. После выполнения этой команды, как только файл будет касаться или изменяться, его временные метки будут обновлены до текущего времени.

Эта операция полезна, например, когда вам нужно обновить метку времени доступа к файлу, но не хотите вносить реальные изменения в содержимое файла.

Для более точного управления временными метками используйте опции.

Помните, что для выполнения изменения времени доступа на файле вам может потребоваться соответствующее разрешение на запись к этому файлу.

Пример:

Эта команда изменит метку времени доступа файла example.txt на текущее время.

Вы можете проверить изменение метки времени доступа с помощью команды stat;

Вы увидите вывод, содержащий информацию о файле, включая Access (Доступ) в разделе Access:. Это и есть время последнего доступа.

Пример вывода команды stat:

Если метка времени доступа была успешно изменена, вы увидите актуальное текущее время и дату в этом выводе.

Проверка времени доступа к файлу.
Метод stat дает подробную информацию не только об измененном состоянии файла но и о модификации и том когда файл был создан. Для отображения только времени изменения можно использовать команду ls с опцией -l

Демонстрация вывода информации по файлу с помощью stat и ls.
Вы увидите, что метка времени доступа (atime) была изменена на текущее время.

Явное изменение времени доступа

Для явного изменения времени доступа файла на определенную дату и время, вы можете использовать опцию -d с указанием желаемой даты и времени. Вот синтаксис:

Где:

  • «ГГГГ-ММ-ДД ЧЧ:ММ:СС» — это дата и время в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС" (год, месяц, день, часы, минуты, секунды), которые вы хотите установить.
  • файл — имя файла, для которого вы хотите изменить метку времени доступа.

Например, если вы хотите установить время доступа файла example.txt на 1 января 2024 года в 15:30:00, выполните следующую команду:

После выполнения этой команды, метка времени доступа файла example.txt будет установлена на указанное время.

Демонстрация использования опции -d команды touch

Изменение времени модификации на текущее. Опция -m

Для изменения времени модификации файла на текущее необходимо использовать опцию -m. Вот синтаксис:

Где файл — это имя файла, для которого вы хотите изменить метку времени модификации.

Например, у меня есть файл с именем example.txt, и я хочу обновить его метку времени модификации на текущее то выполняю команду:

После выполнения этой команды, метка времени модификации файла example.txt будет установлена на текущее время.

Демонстрация опции -m для команды touch.
Явное изменение времени модификации. Опция -t

Для явного изменения времени модификации файла на определенное значение используйте опцию -t, за которой следует заданное время и дата в формате [[CC]YY]MMDDhhmm[.ss] или в русском варианте [[ВВ]ГГ]ММДДччмм[.сс]

Вот синтаксис для явного изменения времени модификации:

Читайте также:  Как установить тему в gnome 3

Где:

  • CC, ВВ — стоит за «Век» (Century).
  • YY, ГГ — обозначает «Год» (Year).
  • MM — это «Месяц» (Month).
  • DD, ДД — означает «День» (Day).
  • hh, чч — обозначает «Час» (Hour).
  • mm, мм — значит «Минута» (Minute).
  • ss, сс — это «Секунда» (Second).

Например, если вы хотите установить метку времени модификации файла example.txt на 23 апреля 2024 года в 18:45, выполните команду:

Демонстрация опции -t
Одновременное изменение времени модификации и доступа

Для одновременного изменения времени модификации и доступа файла в Linux можно использовать опции -a (для изменения времени доступа) и -m (для изменения времени модификации). Синтаксис следующий:

Где:

  • -a — указывает на изменение времени доступа.
  • -m — указывает на изменение времени модификации.
  • имя_файла — имя файла, для которого вы хотите изменить оба времени.

Пример:

У меня есть файл «my_file.txt» и хочу изменить ему за один раз время доступа и модификацию этого файла. Выполню команду:

После выполнения этой команды времена доступа и модификации файла my_file.txt будут установлены в текущее время.

Демонстрация работы одновременного изменения доступа и модификации
Изменение метки времени символической ссылки. Опция -h

Для изменения метки времени символической ссылки используйте команду touch с опцией -h или --no-dereference. Эта опция указывает на изменение метки времени символической ссылки, а не файла, на который она ссылается.

Синтаксис команды:

Где:

  • -h — указывает на изменение метки времени символической ссылки.
  • символическая_ссылка — имя символической ссылки, для которой вы хотите изменить метку времени.

Пример:

У вас есть символическая ссылка с именем my_link, и мне нужно изменить её метку времени. Выполним команду:

После выполнения этой команды метка времени символической ссылки my_link будет обновлена.

Важно отметить, что это изменяет метку времени самой символической ссылки, а не файла, на который она указывает.

Демонстрация опции -h.

Изменение даты с помощью опции STRING

Можно использоватьtouch для изменения временных меток файлов, включая установку временных меток на основе слов или фраз. В этом случае, вы можете использовать опцию -d, за которой следует строка, описывающая дату и время. Вот пример:

В этом примере мы использовали фразу «yesterday», что означает «вчера». Будут установлены временные метки для файла example.txt на дату и время, соответствующие «вчерашнему дню».

Вы можете использовать различные фразы, такие как «today» (сегодня), «tomorrow» (завтра), «next Monday» (следующий понедельник) и так далее. Команда touch интерпретирует эти слова и устанавливает временные метки соответственно.

Это полезно, например, если вам нужно изменить временные метки файла на основе относительных дат и времени, а не на конкретную дату и время.

Демонстрация опции -d string.
Изменение даты с помощью слова. Опция —time=WORD

Для изменения даты с использованием слова с опцией --time=WORD в команде touch, вы можете указать одно из следующих слов: «access», «atime», «use», «modify», или «mtime».

  • «access», «atime» или «use» изменяют время доступа к файлу.
  • «modify» или «mtime» изменяют время модификации файла.

Изменить время доступа к файлу на текущее:

Изменить время модификации файла на текущее:

Эти опции позволяют явно выбирать, какую временную метку файла требуется изменить, в зависимости от ваших потребностей.

Заключение

Команда touch позволяет управлять временными метками файлов и создавать пустые файлы. Это полезная программа для установки времени доступа, модификации и других временных характеристик файлов в системе Linux. Предоставляет простые и гибкие возможности для работы с временными параметрами файлов.

(Visited 281 times, 1 visits today)
Михаил Чужой

Администратор сайта. Веду записи об использовании компьютера для людей.

CHUZHOY007.ru
Добавить комментарий