Философия Linux гласит — все в системе есть файл. Мы повседневно работаем с файлами и программы, которые мы выполняем — тоже файлы. В разных случаях нам может понадобиться создать в файловой системе, файлы определенного типа. Если вам интересно какие типы файлов в Linux вы можете создать, смотрите отдельную статью.
Конечно, все очень просто делается с помощью мышки и файлового менеджера. Но если вы дружите с клавиатурой, создать файл через терминал Linux намного быстрее и как вы увидите, эффективнее. В терминале вы можете не только создавать пустые файлы, но и создавать файл с уже готовым содержимым, файлы определенного размера, и нужными метаданными.
Как все это делать, вы узнаете из этой статьи. Мы рассмотрим все доступные средства создания файлов в терминале Linux. Поехали!
Содержание статьи:
1. Редактор nano
Самый распространенный способ создать текстовый файл в Linux — это использование консольных текстовых редакторов. Например, nano. После ввода команды открывается редактор и вы вводите нужный текст, например:
nano файл.txt
2. Редактор Vi
Тот же принцип, но программа намного серьезнее:
vi файл.txt
Если вы в первый раз столкнулись с vim, это необычный редактор, чтобы вы не пугались когда его откроете, скажу пару слов о том, как он работает. Здесь есть два режима: режим вставки и командный. Переключаться между ними можно с помощью кнопки Esc. Для выхода из редактора в командном режиме наберите :q, для сохранения файла :w. Вообще, Vim — очень полезный инструмент. Чтобы узнать побольше о его возможностях и выучить основы выполните: vimtutor.
Понятное дело, что в этом пункте можно говорить и о других редакторах, в том числе и с графическим интерфейсом. Но мы их опустим и перейдем к другим командам создания файла в Linux.
3. Оператор перенаправления >
Это, наверное, самая короткая команда для создания файла в Linux:
> файл
Оператор оболочки для перенаправления вывода позволяет записать вывод любой команды в новый файл. Например, можно подсчитать md5 сумму и создать текстовый файл в linux с результатом выполнения.
md5sum файл > ~/sum.md5
Это рождает еще несколько способов создания файла в Linux, например, выведем строку в файл с помощью команды echo:
echo "Это строка" > файл.txt
Этот способ часто используется для создания конфигурационных файлов в Linux, так сказать, на лету. Но заметьте, что sudo здесь работать не будет. С правами суперпользователя выполниться echo, а запись файла уже будет выполнять оболочка с правами пользователя, и вы все равно получите ошибку Access Denied.
Еще тем же способом можно сделать примитивный текстовый редактор для создания файла. Утилита cat без параметров принимает стандартный ввод, используем это:
cat > файл.txt
После выполнения команды можете вводить любые символы, которые нужно записать в файл, для сохранения нажмите Ctrl+D.
А еще есть утилита printf, и здесь она тоже поддерживает форматирование вывода:
printf "Это %d текстовая строка\n" 1 > файл
Этот способ создать файл в linux используется довольно часто.
4. Оператор перенаправления вывода >>
Также можно не только перезаписывать файл, а дописывать в него данные, с помощью перенаправления оператора >>. Если файла не существует, будет создан новый, а если существует, то строка запишется в конец.
echo "Это текстовая строка" > файл.txt
$ echo "Это вторая текстовая строка" >> файл.txt
5. Оператор перенаправления 2>
Первые два оператора перенаправления вывода команды в файл использовали стандартный вывод. Но можно создать файл в терминале ubuntu и перенаправить в него вывод ошибок:
date 2> файл
Если команда не выдает ошибок, файл будет пустым.
6. Команда cp
Команда cp используется для копирования файлов в Linux. Но с помощью нее можно и создать файл. Например, чтобы создать пустой файл можно просто скопировать /dev/null:
cp /dev/null файл
7. touch
Вот мы и подобрались к непосредственно созданию файлов через терминал, для этого в Linux есть специальная утилита touch. Она позволяет создать пустой файл в Linux, при этом указывать их дату создания, права доступа и другие метаданные.
Чтобы создать пустой файл linux просто наберите:
touch файл.txt
Можно создать несколько пустых файлов сразу:
touch файл1 файл2
Опция -t позволяет установить дату создания. Дата указывается опцией -t в формате YYMMDDHHMM.SS. Если не указать будет установлена текущая дата. Пример:
touch -t 201601081830.14 файл
Можно использовать дату создания другого файла:
touch -r шаблон файл
Также можно установить дату последней модификации, с помощью опции -m:
touch -m -t 201601081830.14 файл
Или дату последнего доступа:
touch -a -t 201601081830.14 файл
Чтобы посмотреть действительно ли задается информация, которую вы указали используйте команду stat:
stat файл
8. Утилита dd
Это утилита для копирования данных из одного файла в другой. Иногда необходимо создать файл определенного размера в Linux, тогда можно просто создать его на основе /dev/zero или /dev/random, вот так:
Параметр if указывает откуда брать данные, а of — куда записывать, count — необходимый размер. Еще можно указать размер блока для записи с помощью bs, чем больше размер блока тем быстрее будет выполняться копирование.
Создание специальных файлов в Linux
В Linux, кроме выше рассмотренных обычных текстовых и бинарных файлов существуют еще и специальные файлы. Это файлы сокетов и туннелей. Их нельзя создать обычными программами, но для этого существуют специальные утилиты смотрите подробнее в статье, ссылку на которую я дал вверху.
Выводы
Это были все возможные команды для создания файла в Linux. Если вы знаете другие, которые следовало бы добавить в статью — поделитесь в комментариях.

Статья Как создать файл в терминале распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.