В системах Unix файлы можно объединять с помощью утилиты cat
(в системах Windows есть type
или copy /B
).
cat file1 file2 file3 > joined-file
Это берет содержимое старых файлов и копирует его в один новый файл. Процесс занимает время, необходимое для чтения старых файлов и записи новых. Новый файл сохраняется отдельно от старых файлов, поэтому команда не будет выполнена, если на диске не осталось свободного места для записи нового файла.
Есть ли более быстрый способ объединить файлы или, по крайней мере, "обмануть" программы, заставив их думать, что файлы объединены, что не включает перемещение или копирование данных на диске?
Одним из способов сделать это может быть изменение оглавления файловой системы, чтобы файлы обрабатывались как фрагменты файла большего размера. Есть ли "безопасный" способ сделать это (т.е. безопаснее, чем использовать dd
для изменения оглавления вручную)?
Меня интересует любой способ объединения файлов на любой платформе, который быстрее и требует меньше места на диске, чем физическая конкатенация файлов.