A menos que você introduza um syscall para cp
(ou pelo menos copie um bloco), o sistema operacional dificilmente descobrirá que os dados que o cp
programa irá gravar são os mesmos que foram lidos em outro bloco. Além disso, você teria uma sobrecarga adicional para gerenciar o cenário "vários arquivos compartilham os mesmos blocos". Arquivos grandes e similares que diferem apenas em alguns blocos ocorrem raramente. Portanto, no geral, é mais barato copiar esses blocos e adicionar essa sobrecarga administrativa a todos os arquivos.
Agora, se você "copiar" arquivos (muitos deles) adicionando outro clone / instantâneo do sistema de arquivos no, digamos, BTRFS, a situação é diferente: Agora você "copiou" todos os arquivos no sistema de arquivos e quaisquer alterações em eles serão copiados na gravação. Isso existe, mas não no ext4.
"Journalling" é um conceito completamente independente disso, são as estruturas administrativas dos arquivos que contam.