Arquivos regulares consistem em três componentes principais:
- Nome (link de hardware)
- Inode (informações do sistema)
- Corpo (dados)
Tubulações (não importando nome ou anônimas, persistentes ou temporárias) não têm corpo. Portanto, eles sempre têm tamanho zero, diferente dos arquivos comuns. Eles só têm buffer na memória. É por isso que o pipe anônimo / dev / fd / 63 tem tamanho zero. Você poderia usar qualquer outro comando dentro do operador < (...) com o mesmo resultado, digamos
du -sk <(cat somefile)
Você pode criar o pipe nomeado com o comando mkfifo para ver que seu tamanho é sempre igual a zero mesmo se você preencher completamente o buffer. Na verdade, o tamanho do arquivo de pipes nomeados (e quaisquer outros) não tem sentido real e é definido como zero para uniformidade de listagem entre outros arquivos.