ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Bash: добавить в файл

Как создать псевдонимы Bash

В Bash есть несколько способов добавить текст в файл. Эта статья объясняет некоторые из них.

Чтобы добавить текст в файл, вам необходимо иметь права на запись в него. В противном случае вы получите ошибку «permission denied».

 

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

Есть несколько команд, которые можно использовать для печати текста на стандартный вывод и перенаправить его в файл: команды echo и printf наиболее используемые из них.

Чтобы добавить текст в файл, укажите имя файла после оператора перенаправления:

echo "это новая строка" >> file.txt

 

При использовании с параметром -e команда echo интерпретирует символы с обратной косой чертой, такие как символ новой строки \n:

echo -e "это новая строка \nэто еще одна новая строка" >> file.txt

 

Если вы хотите создать более сложный вывод, используйте команду printf, которая позволяет указать форматирование вывода:

printf "Hello, I'm %s.\n" $USER >> file.txt

 

Другой способ добавить текст в файл — использовать документ Here (Heredoc). Это тип перенаправления, который позволяет передавать несколько строк ввода в команду.

Например, вы можете передать содержимое команде cat и добавить его в файл:

 

cat « EOF » file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF

 

Вы можете добавить вывод любой команды в файл. Вот пример с командой date:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

 

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

 

Команда tee утилита командной строки в Linux, которая читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов одновременно.

По умолчанию команда tee перезаписывает указанный файл. Чтобы добавить вывод в файл, используйте tee с параметром -a( —append):

echo "это новая строка"  | tee -a file.txt

 

Если вы не хотите tee использовать в стандартном выводе, перенаправьте его на /dev/null:

echo "это новая строка"  | tee -a file.txt >/dev/null

 

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

Чтобы добавить текст в файл, на который вы не имеете права на запись, добавьте sudo до tee как показано ниже:

echo "это новая строка" | sudo tee -a file.txt

 

tee получает выходные данные команды echo, повышает разрешения sudo и записывает в файл.

Чтобы добавить текст в несколько файлов, укажите эти файлы в качестве аргументов команды tee:

echo "это новая строка"  | tee -a file1.txt file2.txt file3.txt

 

В Linux, чтобы добавить текст в файл, используйте оператор >> перенаправления или команду tee.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Exit mobile version