Я проверял своего рода обратное отклонение и столкнулся с этим. Я не указываю желаемое поведение, так как его нет - я просто хочу понять результаты - символьная ссылка на (без имени?) труба? Что происходит за несколько шагов?

pehlic@ely:~/src/bash/sandbox/bash$ ls -al >(cat)
l-wx------ 1 pehlic pehlic 64 Jan 13 23:39 /dev/fd/63 -> pipe:[26718]

1 ответ1

1

Это на самом деле не делает ls -al и не передает это в cat , это делает подстановку процесса на cat и представляет это как файл ls -al который затем выполняет листинг файла.

Таким образом, замена процесса создает канал , соединяющий файл-объект и stdin "внутренней" программа, cat здесь и представляет собой файл в программу "внешней". Затем вы делаете для этого ls и видите, что он предложил "файл" /dev/fd/63 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .