Citado abaixo da página de manual de pipe (7) .
Pipe capacity
A pipe has a limited capacity. If the pipe is full, then a write(2) will block or fail, depending on whether the O_NONBLOCK flag is set (see below). Different implementations have different limits for the pipe capacity. Applications should not rely on a particular capacity: an application should be designed so that a reading process consumes data as soon as it is available, so that a writing process does not remain blocked.
In Linux versions before 2.6.11, the capacity of a pipe was the same as the system page size (e.g., 4096 bytes on i386). Since Linux 2.6.11, the pipe capacity is 65536 bytes.
O pipe tem uma capacidade específica, provavelmente 64k para o kernel moderno do Linux. Se essa capacidade for atingida, quaisquer gravações serão bloqueadas até que alguma sala esteja disponível após uma chamada de leitura. Portanto, geralmente, zcat your_file.gz | your_program
teria apenas 64k descompactado a qualquer momento e, portanto, você não deveria se preocupar com o uso da memória.