Найти в Дзене
Герман Геншин

7 Нереальных способов создать пустой файл в Linux — вот чем удивила меня система!

В Linux для одной и той же задачи всегда найдётся море разных решений. Что бы я ни делал — запускаю команды, щёлкаю мышкой или пишу свои скрипты — способов хватает. Но каждый из них по-своему раскрывает характер любимой системы. В этой статье я отправляюсь исследовать загадочный «чёрный ящик» Linux: расскажу про команду, с помощью которой ставят программы, поделюсь фокусами с Vim-скриптами и другими необычными методами! Если нужно создать пустой файл, touch — это первое, что приходит в голову. Просто набираю: Если такого файла нет, touch мгновенно его создает. Долгое время я думал, что это единственное предназначение команды. Оказалось, всё куда интереснее: Главная задача touch — менять дату и время доступа и модификации файла. Например, этой командой можно обновить метку изменения: В некоторых версиях можно даже задавать точную дату в разных форматах. Обычно обе метки просто выставляются на текущее время. А создание нового файла — приятный бонус: если его ещё нет, touch тут же создае
Оглавление

В Linux для одной и той же задачи всегда найдётся море разных решений. Что бы я ни делал — запускаю команды, щёлкаю мышкой или пишу свои скрипты — способов хватает. Но каждый из них по-своему раскрывает характер любимой системы.

В этой статье я отправляюсь исследовать загадочный «чёрный ящик» Linux: расскажу про команду, с помощью которой ставят программы, поделюсь фокусами с Vim-скриптами и другими необычными методами!

Простой и быстрый способ: команда touch

Если нужно создать пустой файл, touch — это первое, что приходит в голову. Просто набираю:

Если такого файла нет, touch мгновенно его создает. Долгое время я думал, что это единственное предназначение команды. Оказалось, всё куда интереснее:

-2

Главная задача touch — менять дату и время доступа и модификации файла. Например, этой командой можно обновить метку изменения:

В некоторых версиях можно даже задавать точную дату в разных форматах. Обычно обе метки просто выставляются на текущее время.

А создание нового файла — приятный бонус: если его ещё нет, touch тут же создает его сам. Это редкий случай, когда утилита Unix делает чуть больше, чем просили, и это реально удобно.

Способ с echo и перенаправлением вывода

В Linux очень просто отправить вывод любой команды прямо в файл. Если такого файла нет — он создаётся на лету.

Вот как получить абсолютно пустой файл:

Здесь главное — использовать ключ -n. Он указывает echo не добавлять перевод строки. Если забыть про -n, в новом файле всё равно окажется лишний байт — ненужный перенос строки.

Файл из воздуха: перенаправление без команды

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

Если просто набрать только оператор вывода, оболочка станет ждать вашего ввода. Но, ничего не печатая, сразу нажать Ctrl+D — получится новый идеально пустой файл.

-3

Всё, что набираю, видно на экране, но привычной подсказки здесь не появляется. Главное — просто не вводить ничего и сразу жать Ctrl+D. Готово: свежий нулевой файл создан!

install: неожиданно полезная команда для файлов

Я обычно ассоциирую install с apt или другим менеджером пакетов. Но на самом деле есть отдельная команда install — её часто используют в скриптах для копирования и установки небольших утилит.

Когда install копирует один файл в другой, это похоже на cp, только возможностей больше: можно создать директорию, жёсткую или символьную ссылку, сразу выставить права доступа.

Есть особенность: по умолчанию install делает файл исполняемым, так что почти всегда стоит сразу добавить -m и прописать нужные разрешения.

Самое интересное — использование устройства /dev/null. Это та самая «чёрная дыра» Linux: что бы туда ни отправили, всё пропадает. /dev/null — не совсем обычный файл, а специальное устройство.

Зная о /dev/null, получить пустой файл можно буквально за секунду — просто скопировав его:

Автоматизация с Vim: создаём файл одной командой

Vim — редактор на любителя: кто-то его обожает, кто-то терпеть не может. Но мало кто знает, что его можно запускать в режиме скрипта через опцию -c.

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

Если файла ещё нет, Vim откроет пустое окно, мгновенно сохранит и закроет новый файл.

Мега-низкоуровневый путь: команда dd

Создать файл — кажется ерундой, пока не посмотришь, как это делает dd. Большинство команд скрывают всё лишнее, а dd сразу показывает все детали: здесь и непривычный синтаксис без дефисов, и название, расшифровывающееся как "data definition".

Хотите ещё больше крутых трюков по работе с файлами в Linux? Подпишитесь на нашу рассылку!

Хотите ещё больше крутых трюков по работе с файлами в Linux? Подпишитесь на нашу рассылку!

По умолчанию dd копирует данные блоками по 512 байт. Опция of задаёт имя выходного файла — он будет создан или перезаписан.

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

dd — очень опасная штука: с неправильными параметрами можно легко угробить всю систему. Если нет причины, осторожнее с этим способом!

Мини-программа: самое geek-решение

Ну и напоследок — усложняю себе задачу нарочно: можно создать файл однострочником на Python, Perl или даже Bash. Например, на Perl это выглядит так:

Ключ -e позволяет исполнить выражение прямо из командной строки. Функция open открывает файл на запись — или создает, если такого файла ещё нет.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

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

Также подписывайтесь на нас в: