Хотите быстро создать файл, но не хотите открывать текстовый редактор или перемещаться по графическому интерфейсу? Обратите внимание на команду 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 выделяется своей простотой и эффективностью.
Комментарии (0)