Я давно использую каналы и перенаправления и просто понял, что не знаю точно, чем они отличаются. Я просто знаю, что если вы хотите сохранить вывод в файл, то вы используете>. В противном случае большую часть времени вы просто используете |. Может кто-нибудь объяснить разницу между каналами и перенаправлениями?
23
Ответы:
Оба делают одну и ту же основную вещь; они перенаправляют файловый дескриптор выполненного процесса. Разница заключается в том, как. Канал соединяет стандартный вывод одного процесса со стандартным вводом другого, тогда как перенаправление перенаправляет из / в файл (
>
из стандартного вывода в файл,<
из файла в стандартный ввод).источник
/dev/fd
. Например, если вы запуститеecho foo > >(somecommand)
, он расширится доecho foo > /dev/fd/3
. Это все еще перенаправление, но на процесс.