Как использовать команду Touch в Linux

Хотите быстро создать файл, но не хотите открывать текстовый редактор или перемещаться по графическому интерфейсу? Обратите внимание на команду touch. Эта команда полезна для создания пустых файлов и обновления временных меток файлов, что очень важно для управления резервным копированием и эффективного выполнения скриптов.

Как работает команда Touch

В системах UNIX/Linux команда touch часто используется для быстрого создания пустых файлов. Кроме того, с ее помощью можно изменять временные метки – в частности, время доступа и модификации уже существующих файлов.

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

Синтаксис команды touch выглядит следующим образом:

touch [options] [file_name]

Создание пустого файла

Создать пустой файл с помощью команды touch очень просто. Просто используйте команду touch без каких-либо флагов/опций:

touch newfile.txt

Чтобы убедиться в создании файла, вы можете проверить его размер с помощью команды stat:

stat newfile.txt

В выводе посмотрите на поле Size. Если оно показывает 0 файл пуст.

Кроме того, если файл уже существует, команда touch обновляет время доступа (atime) и модификации (mtime) до текущего времени, не влияя на содержимое файла и разрешения.

Создание нескольких пустых файлов

Что делать, если вам нужно больше одного пустого файла? С помощью touch вы можете создать несколько файлов одновременно. Например, создадим несколько файлов, разделенных пробелами, следующим образом:

touch file1.txt file2.txt file3.txt

Вы можете проверить создание этих нескольких пустых файлов, выполнив следующее:

ls -l *.txt

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

Давайте создадим несколько файлов с нумерованными именами:

touch file{1..3}.txt

Убедитесь в этом, просмотрев файлы в указанном каталоге.

Аналогичным образом можно создавать файлы с буквенными именами:

touch file_{a..e}.txt

Примечание: Команда touch не может смешивать цифры и буквы в одном расширении скобки.

Параметры команды touch

Как уже говорилось, команда touch – это не только создание файлов, но и инструмент для управления временными метками файлов. Чтобы манипулировать этими метками времени, необходимо знать, как работают опции команды touch. Давайте рассмотрим их:

Опция Описание
-a Обновляет только время доступа к файлу.
-c Предотвращает создание нового файла, если он еще не существует.
-d=, -date= Изменяет временную метку файла с помощью указанной строки даты.
-m Обновляет только время модификации файла.
-r Использует atime и mtime из файла ссылок.
-t Изменяет временную метку файла, используя указанные дату и время.

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

Время доступа, или atime, – это временная метка, которая обновляется при каждом обращении к содержимому файла с помощью инструментов командной строки, таких как grep или cat, или текстовых редакторов, таких как vim или nano

По умолчанию touch обновляет и время доступа, и время модификации. Однако если вы хотите изменить только время доступа, вы можете использовать опцию -a вместе с командой touch. Это особенно полезно для моделирования использования файлов или настройки журналов для определенных операций.

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

Теперь вы можете изменить время доступа к указанному файлу с помощью команды touch -a:

touch -a happy.txt

Более того, приведенная выше команда обновит время доступа указанного файла до текущего времени, не затрагивая mtime.

Давайте проверим изменения, выполнив команду:

ls -lu

Кроме того, вы можете задать определенное время доступа, комбинируя опции -a и -t. Например, чтобы изменить заданное время доступа к файлу на полночь 1 июня 2010 года:

touch -at 201006010000 happy.txt

Здесь параметр -a изменяет время доступа, а параметр -t задает время в формате YY]MMDDhhmm[.ss].

Чтобы проверить изменения, можно воспользоваться этой командой:

ls -lu

Изменение времени модификации

Время модификации, или time, – это временная метка, которая изменяется при каждом изменении содержимого файла. Однако она не отслеживает изменения, связанные с правами доступа или владения файлом.

Чтобы обновить только время последней модификации файла, не изменяя время доступа, можно использовать опцию -m команды touch:

touch -m happy.txt

Чтобы проверить изменения, используйте команду stat:

stat happy.txt

Это изменяет mtime на настоящий момент, оставляя нетронутым время доступа или atime.

Если вам нужно установить конкретную временную метку для времени модификации, вам нужно объединить опции -m с опцией -t. Например, чтобы установить время модификации на 08:45 утра 19 июня 2014 года, выполните команду:

touch -mt 201406190845.00 happy.txt

Затем проверьте обновленное время модификации, выполнив:

Stat happy.txt

Модификация и время доступа

Бывают случаи, когда вам нужно обновить одновременно atime и mtime. Для этого используйте команду touch независимо от опций.

touch happy.txt

Выполнение этой команды изменяет и atime, и mtime на текущее время. Используйте ее, когда нужно обновить временные метки файла, чтобы отразить недавние действия или изменения, не меняя содержимого файла.

Кроме того, вы можете использовать опции -a и -m вместе с командой touch для изменения времени доступа и модификации:

touch -am happy.txt

Вы можете проверить обновленное время, выполнив следующее:

stat happy.txt

Создание файла по заданному времени

Иногда требуется установить временную метку файла не на текущий момент, а на определенное время и дату. Опция -t, за которой следует желаемая временная метка в формате YY]MMDDhhmm[.ss], позволяет сделать именно это.

Например, если вы хотите установить время доступа и модификации определенного файла на 1 января 2024 года в 12:30, вам нужно ввести:

touch -t 202401011230.00 happy.txt

Чтобы подтвердить модификацию, выполните команду:

stat happy.txt

Вы также можете использовать параметр -r для обновления временной метки файла в соответствии с меткой другого файла. Например, давайте изменим временную метку файла happy.txt на основе временной метки new_file.txt.

Но перед изменением давайте посмотрим время модификации указанных файлов:

ls -l

После этого измените временную метку файла так, чтобы она совпадала с временной меткой другого файла:

touch -r happy.txt new_file.txt

Проверьте изменения с помощью:

ls -l

Альтернатива touch

Хотя touch – это мой основной инструмент для быстрого создания файлов и работы с временными метками, есть и другие методы, которые вы можете использовать. Давайте рассмотрим несколько таких альтернатив.

Команда Cat

Команда cat часто используется для отображения содержимого файлов, но она также может создавать файлы. Используя команду cat с оператором перенаправления, вы можете создать пустой файл:

cat > filename.txt

Эта команда создает файл filename.txt и переводит вас в режим ввода. Если вы нажмете Ctrl + D, то завершите ввод и оставите файл пустым.

Оператор перенаправления

Операторы перенаправления (>, >>) – еще один метод создания файлов. Используя оператор >, вы можете создать пустой файл или перезаписать существующий:

>filename.txt

Вы также можете использовать оператор >>, но он добавляет содержимое в существующий файл, а не создает новый или оставляет его пустым.

Текстовый редактор

Существует множество текстовых редакторов командной строки, таких как nano, vim или emacs, которые позволяют создавать и редактировать файлы. Кроме того, с помощью этих текстовых редакторов можно создать пустой файл.

Например, чтобы создать пустой файл с помощью Vim, выполните команду:

vim file1.txt

Когда вы откроете Vim, по умолчанию вы будете находиться в командном режиме. Нажмите i, чтобы переключиться в режим вставки, в котором вы можете набирать или редактировать содержимое.

После перехода в режим вставки нажмите Esc, чтобы вернуться в командный режим. Затем введите :wq и нажмите Enter, чтобы сохранить свою работу и выйти из Vim. Вот и все – вы создали пустой файл с помощью Vim!

Завершение работы

Linux предлагает несколько способов управления файлами, но утилита touch выделяется своей простотой и эффективностью.

Зарубин Иван Эксперт по Linux и Windows

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

Вдохновлен www.maketecheasier.com

Похожие статьи

Комментарии (0)