Перенаправление стандартных потоков в Linux, конвейеры

размещено в: Linux, Операционные системы | 0

Перенаправление стандартных потоков в Linux, конвейеры. Примеры конвейеров.

Перенаправление стандартных потоков ввода вывода

Перенаправление обычно осуществляется вставкой специального символа > между командами. Обычно синтаксис выглядит так:

команда1 > файл1 — выполняет команду1, помещая стандартный вывод в файл1;

команда1 < файл1 выполняет команду1, используя в качестве источника ввода файл1 (вместо клавиатуры).

На каждый запрос ввода программы считывается одна строка текста из файла. Конструкция команда1 < файл1 > файл2 совмещает два предыдущих варианта: выполняет команду1 ввода из файла1 и вывода в файл2.

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

команда1 | команда2, выполняет команду1 используя её поток вывода как поток ввода при выполнении команды2, что равносильно использованию двух перенаправлений и временного файла:

команда1 > ВременныйФайл

команда2 < ВременныйФайл

rm ВременныйФайл

$ ls -l | sort > sorted$

Результат работы программы ls (список файлов) передаётся по конвейеру на стандартный вход программы sort. При этом список файлов не попадает на экран терминала. Программа sort сортирует файл по строкам. Поскольку у sort перенаправлен стандартный вывод, информация на экран не попадает, а передаётся в файл sorted. То есть в результате выполнения этого конвейера команд, в файле sorted сохраняется отсортированный список файлов.

 

Оставить ответ