У меня есть файл, который очень большой (> 500 ГБ), который я хочу добавить с относительно небольшим заголовком (< 20KB). Выполнение таких команд, как:Подготовка к очень большому файлу в фиксированное время или очень быстро
cat header bigfile > tmp
mv tmp bigfile
или аналогичные команды (например, с sed) очень медленные.
Что такое быстрый способ записи заголовка в начало существующего большого файла? Я ищу решение, которое может работать под CentOS 7.2. Это нормально устанавливать пакеты из CentOS install или обновлять репо, EPEL или RPMForge.
Было бы здорово, если бы существовал какой-либо метод, который не предполагает переноса или копирования большого количества данных в файле bigfile. То есть я надеюсь на решение, которое может работать в фиксированное время для заданного файла заголовка независимо от размера файла bigfile. Если это слишком много, чтобы просить, я просто прошу о самом быстром методе.
Компиляция вспомогательного инструмента (как на C/C++) или с использованием языка сценариев вполне приемлема.
Стандартные файловые системы обрабатывают файлы как связанные списки (блоков) байтов, что означает, что кроме добавления к файлу, для редактирования требуется переписывание всего объекта. – chepner
Возможно, вы сможете сделать это быстрее на C++, где вы можете настроить размеры буфера. Тем не менее, вы не можете обойтись без копирования. – molbdnilo
http://stackoverflow.com/questions/2503254/unix-prepending-a-file-without-a-dummy-file – xxfelixxx