Если вы не введете системный вызов для cp
(или, по крайней мере, для копирования блока), ОС будет трудно понять, что данные, которые cp
программа собирается записать, совпадают с данными, которые она только что прочитала из другого блока. Кроме того, у вас будут дополнительные издержки для управления сценарием «несколько файлов совместно используют одни и те же блоки». Большие похожие файлы, которые отличаются только несколькими блоками, встречаются редко. Таким образом, в целом дешевле просто скопировать эти блоки, а затем добавить административные издержки ко всем файлам.
Теперь, если вы «копируете» файлы (их много), добавляя еще один клон / снимок файловой системы, скажем, в BTRFS, ситуация другая: теперь вы «скопировали» все файлы в файловой системе, и любые изменения в они будут копировать при записи. Это существует, но не в ext4.
«Журналирование» является полностью независимым понятием от того, что учитываются административные структуры для файлов.