Обычные файлы состоят из трех основных компонентов:
- Имя (жесткая ссылка)
- Inode (системная информация)
- Тело (данные)
Трубы (неважно названные или анонимные, постоянные или временные) не имеют тела. Поэтому они всегда имеют нулевой размер в отличие от обычных файлов. У них есть только буфер в памяти. Вот почему анонимный именованный канал / dev / fd / 63 имеет нулевую длину. Вы можете использовать любую другую команду внутри оператора <(...) с тем же результатом, скажем,
du -sk <(cat somefile)
Вы можете создать именованный канал с помощью команды mkfifo, чтобы увидеть, что его размер всегда равен нулю, даже если вы полностью заполняете его буфер. На самом деле, размер файла именованных (и любых других) каналов не имеет реального смысла и устанавливается равным нулю для равномерности листинга среди других файлов.