Как создать текстовый файл в Linux

Быстрые ссылки
- Создать текстовый файл с помощью команды cat
- Создать текстовый файл с помощью команды touch
- Создать текстовый файл с помощью символа перенаправления (>)
Если вы предпочитаете клавиатуру и терминал, в Linux можно выполнить множество задач только с помощью командной строки. Ниже описаны простые и надёжные способы создать текстовый файл — с немедленным вводом текста или без него.
Создать текстовый файл с помощью команды cat
Команда cat удобна, когда вы хотите сразу же ввести содержимое нового файла с клавиатуры.
Просто введите эту команду в терминале (замените «sample.txt» на нужное имя файла), затем нажмите Enter:
cat > sample.txtПосле нажатия Enter вы не вернётесь к приглашению командной строки. Курсор перейдёт на новую строку — теперь можно вводить строки текста прямо в файл. Нажимайте Enter после каждой строки. Когда закончите ввод, нажмите Ctrl+D, чтобы завершить ввод и вернуться к приглашению.
Чтобы убедиться, что файл создан, используйте команду ls:
ls -l sample.txt
Командой cat также удобно просматривать содержимое файла:
cat sample.txt
Советы и варианты:
- Для добавления текста в конец существующего файла используйте >> вместо >:
cat >> sample.txt. - Для многострочного автоматизированного заполнения используйте here-doc с cat:
cat <<'EOF' > sample.txt
Первая строка
Вторая строка
EOFВажно: создание файла через cat перезапишет файл, если он уже существует и вы используете одинарный >. Всегда проверяйте, не потеряете ли вы данные.
Создать текстовый файл с помощью команды touch
Команда touch создаёт пустой файл (или обновляет временную метку существующего) и полезна, когда нужно быстро создать набор пустых файлов для будущего использования.
Пример создания одного файла (замените имя файла на своё):
touch sample.txtПосле выполнения вы не получите сообщения — вы вернётесь к приглашению. Чтобы проверить создание, выполните:
ls -l sample.txtМожно создать несколько файлов одной командой, перечислив имена через пробел:
touch sample1.txt sample2.txt sample3.txtКогда вам нужно добавить содержимое, откройте файл в редакторе (vi, nano, etc.) или используйте cat/echo/printf/tee.
Отличия от cat:
- touch создаёт пустой файл и не открывает его для ввода;
- touch можно использовать для массового создания;
- touch обновляет метку времени, если файл существует.
Создать текстовый файл с помощью символа перенаправления (>)
Оператор > обычно используется для перенаправления вывода команды в файл. Если поставить > без команды слева, оболочка создаст пустой файл — самый короткий способ для одиночного файла.
> sample.txtКак и в предыдущих методах, вы не получите явного подтверждения. Проверьте наличие файла:
ls -l sample.txtОсобенности и подсказки:
создаёт или перезаписывает файл. Чтобы дописать, используйте >>.
- Часто используют в сочетании с командами вывода, например:
echo 'Привет' > sample.txtилиls -l > dirlist.txt. - Минимум ввода — удобно в скриптах или при создании единственного файла вручную.
Когда какой метод выбирать — простая модель решения
- Нужен немедленный ввод текста: используйте cat (или открывайте редактор vi/nano).
- Нужно создать много пустых файлов сразу: touch.
- Нужен самый короткий синтаксис для одного пустого файла: >.
- Хотите сохранить вывод команды в файл: используйте > вместе с командой слева (например, echo, ls).
flowchart TD
A[Нужно создать файл?] --> B{Хотите сразу ввести текст?}
B -- Да --> C[Используйте cat > файл]
B -- Нет --> D{Создаёте несколько файлов?}
D -- Да --> E[Используйте touch файл1 файл2 ...]
D -- Нет --> F{Один файл, минимально печатать?}
F -- Да --> G[Используйте > файл]
F -- Нет --> H[Откройте редактор: vi или nano]Альтернативные подходы и расширенные примеры
- echo/printf: для простых однострочных файлов
echo 'text' > file.txtилиprintf 'строка ' > file.txt. - tee: удобно, если нужно видеть вывод и записать в файл одновременно:
echo 'text' | tee sample.txt. - Редакторы: nano и vi дают полный контроль над текстом (удобно для редактирования больших файлов).
- Скрипты: в bash-скриптах чаще используют heredoc, printf и tee для создания конфигураций и шаблонов.
Пример использования printf в скрипте:
printf '%s
' "Line 1" "Line 2" > sample.txtКогда методы не подойдут или приведут к ошибке
- Недостаточно прав (permission denied): если нет прав на запись в директорию, все три метода не создадут файл. Решение: изменить права или использовать sudo (с осторожностью).
- Файловая система только для чтения (read-only): команда вернёт ошибку.
- Перезапись важных данных: использование > перезапишет существующий файл — может привести к потере данных.
Важно: прежде чем перезаписывать файл, убедитесь, что у вас есть резервная копия или что вы точно хотите перезаписать.
Шпаргалка команд (быстрое сравнение)
- cat > file — создать файл и сразу ввести текст; Ctrl+D завершает ввод.
- cat >> file — дописать в конец файла.
- touch file1 file2 — создать/обновить временную метку; удобно для нескольких файлов.
file — создать пустой файл (перезапишет файл, если он существует).
file — добавить в конец без перезаписи.
- echo ‘text’ > file — записать одну строку.
- printf ‘строка ‘ > file — записать с форматированием.
- tee file — записать и вывести одновременно.
- cat <
file … EOF — here-doc для многострочного вставления.
Чек-лист по ролям
- Для начинающего:
- Используйте nano или cat, чтобы быстро ввести текст.
- Проверяйте
ls -lиcat fileпосле создания.
- Для разработчика:
- Используйте touch в автоматических скриптах для создания placeholder-файлов.
- Применяйте printf/tee в скриптах для детерминированного вывода.
- Для SRE/администратора:
- Проверяйте права и владелец:
ls -l,stat file. - Используйте sudo только при необходимости; применяйте umask и политики доступа.
- Проверяйте права и владелец:
Критерии приёмки
- Файл существует в ожидаемой директории:
ls -l путь/к/файлу. - Размер файла соответствует ожиданиям (0 байт для пустого файла или >0 для файла с содержимым):
stat -c%s fileилиls -l. - Содержимое корректно:
cat fileилиless file. - Права и владелец соответствуют политике:
ls -l file.
Мини-методология: шаги для безопасного создания файла в скриптах
- Проверить права директории:
test -w dir || exit 1. - Создать временный файл с уникальным именем:
tmp=$(mktemp /tmp/myfile.XXXXXX). - Записать содержимое в tmp (printf/tee).
- Переместить tmp в целевой файл атомарно:
mv tmp targetfile. - Установить права:
chmod 0644 targetfile.
Преимущество: уменьшение риска частично записанных или перезаписанных файлов.
Тестовые сценарии и примеры приёмки
- Тест 1: Создание файла через touch
- Шаги:
touch t.txt && ls -l t.txt - Ожидание: файл присутствует, размер 0.
- Шаги:
- Тест 2: Создание и запись через cat
- Шаги:
printf 'x' | cat > a.txt && cat a.txt - Ожидание: файл содержит символ x.
- Шаги:
- Тест 3: Перезапись >
- Шаги:
echo first > f.txt && echo second > f.txt && cat f.txt - Ожидание: файл содержит только ‘second’.
- Шаги:
Короткий глоссарий (1 строка)
- cat — конкатенировать и выводить файлы; используется для ввода/просмотра.
- touch — создать пустой файл или обновить временные метки.
, >> — операторы перенаправления stdout: создать/перезаписать и дописать.
- here-doc — встроенный мультистрочный ввод в оболочке (<
Риски и способы их смягчить
- Потеря данных при перезаписи: проверяйте наличие файла перед перезаписью или используйте резервные копии (
cp file file.bak). - Проблемы с правами: проверяйте права (
ls -l) и используйте правильного пользователя/группу. - Частично записанные файлы в скриптах: используйте временные файлы и атомарный mv.
Короткое резюме
Эти три метода — cat, touch и > — покрывают большинство сценариев создания файлов в Linux: ввод текста прямо в файл, массовое создание пустых файлов и максимально короткая команда для одного файла. Для производственных сценариев предпочтителен безопасный подход с временными файлами и проверкой прав.
| | Linux Commands | | Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr | | | Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | | | Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld | |
RELATED: Best Linux Laptops for Developers and Enthusiasts
Похожие материалы
Проверить место в Google: что учитывается и как
Как показывать PowerPoint в Google Meet
Деплой в AWS S3 из GitHub Actions
Как устранить проблемы с Amazon Alexa
Размер папки в Windows через PowerShell