A menos que introduzca una llamada al sistema cp
(o al menos para copiar un bloque), el sistema operativo tiene dificultades para darse cuenta de que los datos que el cp
programa va a escribir son los mismos que acaba de leer de otro bloque. Además de eso, tendría una sobrecarga adicional para administrar el escenario "varios archivos comparten los mismos bloques". Los archivos similares grandes que solo difieren en pocos bloques ocurren raramente. Por lo tanto, en general es más barato copiar esos bloques y luego agregar esta sobrecarga administrativa a todos los archivos.
Ahora, si "copia" archivos (muchos de ellos) agregando otro clon / instantánea del sistema de archivos en, por ejemplo, BTRFS, la situación es diferente: ahora ha "copiado" todos los archivos en el sistema de archivos y cualquier cambio en ellos serán copia en escritura. Esto existe, pero no en ext4.
"Journalling" es un concepto completamente independiente de eso, son las estructuras administrativas para los archivos que cuentan.