Как создать файл в Linux: 12 способов

Рассмотрим 12 способов создания файла в Linux.

Эти способы тестировались на дистрибутиве Ubuntu, но будут работать на любой системе Linux.

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

$ touch filename 

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

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

touch file1.txt file2.txt file3.txt

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

$ echo > filename

Пояснение: Команда echo предназначена для вывода на экран строки, которая в нее передается. Символ > перенаправляет вывод в файл. Соответственно мы перенаправили пустоту в файл.

Трюк для создания пустых файлов

$ > filename

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

Или лучше такой пример:

$ : > file

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

Создание файла с содержимым

$ echo '123' > filename

Пояснение: Выводим строку 123 и перенаправляем этот вывод в файл. Файл будет содержать строку 123

Создание файла путем объединения других файлов с помощью cat

$ cat file1 file2 file3 > big_file

Пояснение: Команда cat выводит на экран содержимое на экран, однако мы перенаправляем этот вывод в файл. Соответственно мы создали файл big_file в котором находится содержимое из трех других файлов.

Создание файла с помощью любой команды и символа >

Мы можем создать файл, с помощью команд, которые выводят что-то на экран, записав этот вывод в файл. Например ps aux выводит информацию о текущих процессах в системе. Мы просто можно записать весь вывод этой команды в файл file.txt и потом его проанализировать.

$ ps aux > file.txt

Записываем в файл справку по команде man:

man man > file.txt

Записываем в файл календарь на 2021 год

cal 2021 > 2021.txt

Создание файла при помощи редактора nano

$ nano filename.txt

Этот редактор чуть более привычный простому пользователю, чем Vim, однако он должен быть установлен в вашей системе.

Иначе вы получите ошибку о несуществующей команде Command 'nano' not found.

Проверить установлен ли nano в вашей системе можно с помощью следующей команды:

$ nano --version

Результатом будет информация об установленном редакторе:

GNU nano, version 2.9.3
(C) 1999-2011, 2013-2018 Free Software Foundation, Inc.
(C) 2014-2018 the contributors to nano
Email: nano@nano-editor.org    Web: https://nano-editor.org/
Compiled options: --disable-libmagic --disable-wrapping-as-root --enable-utf8

Либо сообщение об ошибке: Command 'nano' not found

Создание файла при помощи текстового редактора Vim

$ vi filename.txt

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

На всякий случай скажу вам способ выйти из этого редактора, т.к. даже это совершенно не очевидно: нажмите Esc, затем : затем введите q! затем нажмите Enter - это способ выхода без сохранения. Для сохранения нужно набрать x! вместо q

Создание файла определенного размера c помощью fallocate

$ fallocate -l 10M hello.txt

Таким образом вы создали файл hello.txt размером 10 мегабайт.

Создание файла определенного размера с помощью dd

$ dd if=/dev/zero of=hello.txt  bs=10M  count=1

Создание файла-сокета c помощью команды mkfifo

$ mkfifo foo.sock

После создания вам нужно установить на него права, чтобы нужные программы могли им пользоваться

Создание файла при помощи HEREDOC

$ cat << EOF > file.txt
> This text is
> added by Here Document
> EOF

Пояснение: мы сначала пишем cat << EOF > file.txt причем вместо EOF может быть любая строка, которой нет в тексте, который мы собираемся написать. Затем когда мы завершили заполнение многострочного файла, просто переходим на следующую строку и вводим EOF. В итоге содержимое нашего файла будет:

This text is
added by Here Document

Спасибо за внимание! Если вы знаете какой-нибудь интересный и полезный способ создания фалов - напишите его в комментариях.