Saya mencari format kompresi yang mendukung tail
ed. Berarti Anda tidak perlu membaca seluruh file untuk mendapatkan byte terkompresi X terakhir. Apakah ini mungkin dengan salah satu format seperti bzip2, xz, lzma, dll?
Saya pernah mengkodekan sesuatu menggunakan gzip yang bisa melakukan ini. Pada dasarnya pada level yang sangat tinggi, yang dilakukannya adalah mengecek beberapa blok gzip bersama-sama, lalu saya memiliki util yang dapat mencari mundur dari akhir file sampai kapan blok terakhir dimulai. File-file ini sepenuhnya dapat dibaca oleh utilitas gzip standar, tapi saya berharap ada sesuatu yang sedikit lebih standar tersedia.
Tujuan utama untuk ini adalah untuk file log yang saya dapat menulis terkompresi, dan kemudian dapat melakukannya tail
(bahkan ketika mereka belum sepenuhnya ditulis; yaitu streaming) tanpa harus menunggu semuanya dibaca dari disk atau jaringan.
sumber
FWIW: Saya telah mengembangkan alat baris perintah pada kode sumber zlib.c zlib yang membuat indeks untuk file gzip: https://github.com/circulosmeos/gztool
Itu dapat membuat ekor file gzip terus menerus dengan
-T
opsi. Atau hanya buntut isi terakhir dan berhenti, dengan-t
(Banyak pilihan lain yang tersedia).Perhatikan bahwa untuk semua tindakan ini
gztool
akan membuat file indeks disatukan dengan tindakan itu.Indeks dapat diinterupsi kapan saja dan digunakan kembali dan / atau selesai nanti. Dan seperti yang
gztool
bisa diperintahkan untuk mengekstrak data dari setiap tempat di file, dan akan membuat indeks disatukan dengan tindakan itu, tidak pernah ada waktu yang hilang saat menggunakannya.sumber