vault backup: 2026-05-24 15:03:28
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
---
|
||||
status: stable
|
||||
type: concept
|
||||
tags:
|
||||
- os
|
||||
- linux
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-07
|
||||
title: Redirects
|
||||
---
|
||||
|
||||
# Redirects
|
||||
В системах на базе ядра Linux существуют 3 стандартных потока данных:
|
||||
|
||||
1. stdin - стандартный поток ввода (с клавиатуры, например)
|
||||
2. stdout - стандартный поток вывода (вывод программы)
|
||||
3. stderr - стандартный поток ошибок
|
||||
|
||||
Можно с ними работать, управляя данными в этих потоках. Например, вывод одной команды перевести на вход другой команды.
|
||||
|
||||
- `>` — вывод stdout в файл (создаёт новый файл или перезаписывает существующий):
|
||||
`ls > output.txt`.
|
||||
- `>>` — добавляет stdout к концу файла:
|
||||
`echo "new" >> output.txt`.
|
||||
- `<` — перенаправляет stdin из файла:
|
||||
`wc -l < file.txt`.
|
||||
- `2>` — вывод stderr в файл:
|
||||
`ls nonexist 2> errors.txt`.
|
||||
- `2>&1` — объединяет потоки ошибок и вывода, часто с последующим перенаправлением:
|
||||
`ls file1 file2 > result.txt 2>&1`.
|
||||
- `&>` — краткая запись для объединённого перенаправления stdout и stderr:
|
||||
`command &> alloutput.txt`.
|
||||
|
||||
**Pipeline**
|
||||
|
||||
Существует понятие конвеера - перенаправление выхода предшевствующей команды на вход следующей: `ls | grep user`
|
||||
|
||||
## Связанные заметки
|
||||
- [[Linux]]
|
||||
Reference in New Issue
Block a user