Перенаправление вывода в Linux: >, >>, 2>&1, /dev/null и конвейер
Вывод любой команды можно не только читать на экране, но и записать в файл, выбросить или передать другой команде. Для этого в bash есть знаки >, >>, 2> и |. Ниже — что делает каждый и где на них легко ошибиться.
Содержание 10
Что сделать прямо сейчас
- Подключитесь к серверу — инструкция.
- Сохраните список файлов в файл:
ls -l > files.txt. На экран ничего не выведется — вывод ушёл в файл. - Посмотрите файл:
cat files.txt. - Допишите в конец ещё одну строку:
date >> files.txt. Один знак>перезаписал бы файл, два>>дописывают.
Знаки перенаправления
| Запись | Что делает |
|---|---|
команда > файл | записать вывод в файл; прежнее содержимое файла пропадёт |
команда >> файл | дописать вывод в конец файла |
команда 2> файл | записать в файл только ошибки |
команда > файл 2>&1 | записать в файл и вывод, и ошибки |
команда &> файл | то же, короче |
команда >> файл 2>&1 | дописать в файл и вывод, и ошибки |
команда > /dev/null | выбросить вывод, ошибки останутся на экране |
команда < файл | передать команде содержимое файла вместо ввода с клавиатуры |
Если файла нет, > и >> создадут его. Если есть, > сначала очищает его, а >> дописывает в конец.
Вывод и ошибки — два разных потока
У команды два выхода на экран: обычный вывод (номер 1) и ошибки (номер 2). Знак > перенаправляет только первый. Поэтому после команда > файл сообщения об ошибках всё равно появляются на экране.
2>&1 значит «ошибки — туда же, куда вывод». Порядок важен: пишите его после файла.
| Запись | Что попадёт в файл |
|---|---|
ls /etc /nofolder > out.txt 2>&1 | список папки и ошибка про /nofolder |
ls /etc /nofolder 2>&1 > out.txt | только список, ошибка выйдет на экран |
/dev/null: выбросить вывод
/dev/null — специальный файл: всё, что в него пишут, исчезает. Он нужен, когда вывод не важен:
| Запись | Что будет |
|---|---|
команда > /dev/null | не показывать вывод |
команда 2> /dev/null | не показывать ошибки |
команда > /dev/null 2>&1 | не показывать ничего |
Выбрасывайте ошибки, только когда точно знаете, какие они. Иначе пропустите сообщение о том, что команда не сработала.
Конвейер: вывод одной команды — другой
Знак | передаёт вывод команды слева на вход команде справа. Так ищут нужные строки, листают длинный вывод или считают строки:
ps aux | grep nginx
sudo tail -n 200 /var/log/nginx/error.log | less
ls /etc | wc -lПервая строка ищет nginx в списке процессов, вторая открывает последние 200 строк журнала для пролистывания, третья считает файлы в /etc. Через | идёт только обычный вывод. Чтобы передать и ошибки, пишите |& вместо |. Подробнее о поиске — Команда grep, о просмотре файлов — cat, less, head и tail.
tee: и на экран, и в файл
tee записывает то, что ей передали, в файл и одновременно показывает на экране. Удобно для долгих команд, когда нужен и вывод сейчас, и запись на потом:
df -h | tee disk.txttee -a дописывает в конец файла, а не перезаписывает его.
Запись в системный файл через sudo
Команда sudo echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.conf ответит Permission denied. Знак > выполняет ваша оболочка до запуска команды, а sudo получает только echo. Файл в /etc оболочка открывает с вашими правами — и ей отказывают.
Чтобы записать файл с правами root, передайте текст в sudo tee:
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.confЧтобы дописать в конец, а не перезаписать, — sudo tee -a. Чтобы tee не повторяла текст на экране, добавьте в конец > /dev/null. Пример с подкачкой — Как создать файл подкачки.
Ошибки и как их исправить
| Что видно | Что значит | Что сделать |
|---|---|---|
файл пустой после sort list.txt > list.txt | > очистил файл до того, как sort его прочитал | пишите в другой файл: sort list.txt > sorted.txt |
| нужное содержимое файла пропало | вместо >> набрали > | восстановите файл из копии; дальше дописывайте через >> |
| ошибки всё равно на экране | > перенаправляет только вывод | добавьте 2>&1 после имени файла |
Permission denied при sudo команда > файл | файл открывает оболочка без sudo | используйте sudo tee — как |
| файл журнала задачи cron пустой | команда пишет только ошибки, а их не перенаправили | допишите >> файл 2>&1 — cron |
Источники
- Справка bash для Ubuntu 24.04 — разделы REDIRECTION и Pipelines: операторы >, >>, <, 2>, 2>&1, &>, &>>, | и |&, порядок перенаправлений.
- Справка tee для Ubuntu 24.04 — копирует ввод в файлы и на экран, ключ -a.
Сверено 11 октября 2026 года.
Что почитать дальше
- Команды wc, sort и uniqпосчитать строки и найти IP с наибольшим числом запросов.
- Команда diffсравнить файл настроек с копией и понять, что изменилось.
- cat, less, head и tailкак смотреть файлы и журналы.
- Команда grepпоиск строк в выводе и файлах.
- cronкуда записать вывод задач по расписанию.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026