Я ищу формат сжатия, который поддерживает tail
редактирование. Это означает, что вам не нужно читать весь файл, чтобы получить последние X несжатых байтов. Это возможно с любым из форматов, таких как bzip2, xz, lzma и т. Д.?
Однажды я написал что-то, используя gzip, который мог это сделать. На самом деле, на самом высоком уровне он собирал несколько блоков gzip вместе, затем у меня была утилита, которая могла искать назад от конца файла до момента начала последнего блока. Эти файлы были полностью читаемы стандартными утилитами gzip, но я надеюсь, что есть что-то более стандартизированное.
Конечная цель для этого - для файлов журналов, которые я могу записать в сжатом виде, а затем иметь возможность к tail
ним (даже если они не были полностью записаны, т.е. потоковые), не дожидаясь, пока все это будет прочитано с диска или сети.
источник
FWIW: я разработал инструмент командной строки на основе исходного кода zlib zran.c, который создает индексы для файлов gzip: https://github.com/circulosmeos/gztool
Это может сделать непрерывный хвост файла gzip с
-T
опцией. Или просто хвост последнего содержимого и остановка с помощью-t
(доступно много других опций).Обратите внимание, что для любого из этих действий
gztool
будет создан индексный файл, чередующийся с этим действием.Индексы могут быть прерваны в любое время и использованы повторно и / или завершены позже. И как
gztool
можно просто получить команду извлекать данные из любого места в файле и создать индекс, чередующийся с этим действием, при его использовании никогда не теряется время.источник