Философия Linux гласит - всё в системе есть файл. Мы ежедневно работаем с файлами, и программы, которые мы выполняем, - тоже файлы. В разных случаях нам может понадобиться создать в системе файлы определённого типа. Если вам интересно, какие типы файлов в Linux можно создать, смотрите отдельную статью.
Конечно, всё очень просто делается с помощью мышки и файлового менеджера. Но если вы дружите с клавиатурой, создать файл через терминал Linux намного быстрее и, как вы увидите, эффективнее. В терминале вы можете не только создавать пустые файлы, но и создавать файл с уже готовым содержимым, файлы определённого размера, и с нужными метаданными.
Как всё это делать, вы узнаете из этой статьи. Мы рассмотрим все доступные средства создания файлов в терминале Linux. Поехали!
Содержание статьи
- 1. Редактор nano
- 2. Редактор Vi
- 3. Оператор перенаправления >
- 4. Оператор перенаправления вывода >>
- 5. Оператор перенаправления 2>
- 6. Оператор перенаправления и head
- 7. Команда cp
- 8. touch
- 9. Утилита dd
- Создание специальных файлов в 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. Оператор перенаправления и head
С помощью команды head можно выбрать определённый объем данных, чтобы создать текстовый файл большого размера. Данные можно брать, например, с /dev/urandom. Для примера создадим файл размером 100 мегабайт:
base64 /dev/urandom | head -c 100M > файл
7. Команда cp
Команда cp используется для копирования файлов в Linux. Но с её помощью можно и создать файл. Например, чтобы создать пустой файл, можно просто скопировать /dev/null:
cp /dev/null файл
8. 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 файл
9. Утилита dd
Это утилита для копирования данных из одного файла в другой. Иногда необходимо создать файл определённого размера в Linux, тогда можно просто создать его на основе /dev/zero или /dev/random, вот так:
Параметр if указывает, откуда брать данные, а of - куда записывать, count - необходимый размер. Ещё можно указать размер блока для записи с помощью bs, чем больше размер блока, тем быстрее будет выполняться копирование.
Создание специальных файлов в Linux
В Linux, кроме выше рассмотренных обычных текстовых и бинарных файлов, существуют ещё и специальные файлы. Это файлы сокетов и туннелей. Их нельзя создать обычными программами, но для этого существуют специальные утилиты, смотрите подробнее в статье, ссылку на которую я дал вверху.
Выводы
Это были все возможные команды для создания файла в Linux. Если вы знаете другие, которые следовало бы добавить в статью - поделитесь в комментариях.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали
















Большое спасибо за статью!
Исправьте, пожалуйста, в title страницы "треминлале" на терминале 🙂
/var/www/html$ > file.txt
bash: file.txt: Отказано в доступе
not word
nano файл.txt
нет такого файла или каталога
вы заебали - 90% ваших статей бесполезное говно с ошибками!
У меня нет проблем
Nano это текстовый редактор, возможно его нужно установить
терминЛале
А как создать одинаковый файл сразу во всех каталогах, что есть в директории?
touch (vim/nano/>/etc) */.htaccess - не работает - какие еще варианты?
и если вариант найдется получится ли потом записать во все эти файлы строку?
echo 'hello' >> */.htaccess?
Боже! Это прекрасно!
Спасибо за отличную статью. Для меня, как для осваивающего Линукс, она просто как вода для умирающего в пустыне!
Как создать паку, в ней файл и сразу перейти туда одной командой ?
mkdir test && touch file.txt && cd file.txt не знаю как
GREY Как создать паку, в ней файл и сразу перейти туда одной командой ?
mkdir test && touch file.txt && cd file.txt не знаю как
создать мягкую или жесткую символьную ссылку
ln -s file.exe name.link
ls -li
cat name.link
Полезная статья, но прошу исправить - "С правами суперпользователя выполниться echo", мягкий знак лишний, вдруг учитель русского языка будет читать.
Ход мысли верен, но ошибка в открытии файла: cd используется при смене директории, а открыть текстовый файл нужно редактором (любым) mkdir test && touch file.txt && nano file.txt
touch - права доступа
Что то в мануале ни слова. Как это работает не расскажите? Очень интересно!
$ dd if=/dev/urandon of=filena.me bs=10M count=4 40 метров как в аптеке