В Linux для одной и той же задачи всегда найдётся море разных решений. Что бы я ни делал — запускаю команды, щёлкаю мышкой или пишу свои скрипты — способов хватает. Но каждый из них по-своему раскрывает характер любимой системы.
В этой статье я отправляюсь исследовать загадочный «чёрный ящик» Linux: расскажу про команду, с помощью которой ставят программы, поделюсь фокусами с Vim-скриптами и другими необычными методами!
Простой и быстрый способ: команда touch
Если нужно создать пустой файл, touch — это первое, что приходит в голову. Просто набираю:
Если такого файла нет, touch мгновенно его создает. Долгое время я думал, что это единственное предназначение команды. Оказалось, всё куда интереснее:
Главная задача touch — менять дату и время доступа и модификации файла. Например, этой командой можно обновить метку изменения:
В некоторых версиях можно даже задавать точную дату в разных форматах. Обычно обе метки просто выставляются на текущее время.
А создание нового файла — приятный бонус: если его ещё нет, touch тут же создает его сам. Это редкий случай, когда утилита Unix делает чуть больше, чем просили, и это реально удобно.
Способ с echo и перенаправлением вывода
В Linux очень просто отправить вывод любой команды прямо в файл. Если такого файла нет — он создаётся на лету.
Вот как получить абсолютно пустой файл:
Здесь главное — использовать ключ -n. Он указывает echo не добавлять перевод строки. Если забыть про -n, в новом файле всё равно окажется лишний байт — ненужный перенос строки.
Файл из воздуха: перенаправление без команды
Возможности перенаправления в Linux настолько гибкие, что создать файл можно буквально из ничего!
Если просто набрать только оператор вывода, оболочка станет ждать вашего ввода. Но, ничего не печатая, сразу нажать Ctrl+D — получится новый идеально пустой файл.
Всё, что набираю, видно на экране, но привычной подсказки здесь не появляется. Главное — просто не вводить ничего и сразу жать 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 открывает файл на запись — или создает, если такого файла ещё нет.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru