O ZFS faz isso, mas não é uma desduplicação em nível de arquivo. São dois melhores: desduplicação em nível de bloco (o intermediário entre a desduplicação de bloco e de arquivo sendo a deduplicação de bytes).
No Linux, existe o SDFS; no entanto, o ZFS tem alguns recursos melhores, como a capacidade de usar uma unidade de estado sólido como um armazenamento de tabela de hash, para que você não esteja consumindo grandes quantidades de RAM em sua tabela de hash. O ZFS chama isso de L2ARC .
No momento da redação deste post, por favor, não use o ZFS no Linux. Precisa ficar no forno por mais alguns anos. Use um BSD para o ZFS.