cat
não precisa se lembrar de nenhuma parte do arquivo que já enviou da entrada para a saída. Em outras palavras, ele usa a memória O (1) .
head
também não precisa se lembrar de partes do arquivo que ele já enviou, só precisa contá-las. Além disso, nem sequer precisa ler a totalidade da sua entrada; pode parar quando atinge a quantidade de linhas solicitadas na saída.