Saya punya file .gz besar. Saya ingin membaginya menjadi 100 file gzip yang lebih kecil, yang masing-masing dapat didekompresi dengan sendirinya. Dengan kata lain: Saya tidak mencari cara untuk memotong file .gz menjadi potongan yang harus disatukan kembali untuk dapat mendekompresnya. Saya ingin dapat mendekompres setiap file yang lebih kecil secara mandiri.
Bisakah itu dilakukan tanpa mengkompres ulang seluruh file?
Bisakah itu dilakukan jika file asli dikompresi --rsyncable
? ("Cater lebih baik untuk program rsync dengan secara berkala mengatur ulang struktur internal dari aliran data terkompresi." Kedengarannya seperti titik reset ini mungkin tempat yang baik untuk dipecah dan mungkin menambahkan header.)
Bisakah itu dilakukan untuk format terkompresi lainnya? Saya akan membayangkan bzip2
bisa dilakukan - karena dikompresi dalam blok.
gzip --rsyncable
mengingat bahwa "gunzip tidak dapat membedakannya" (jika Anda dapat menemukan tempat untuk membelah, Anda dapat mengatakan bahwa ada tempat untuk membelah). Mungkin bisa dilakukan dengan bzip2 karena fitur bloknya yang khas.gzip -d -c bigfile.gz
.bzip2
file. Ini bisa dilakukan dengangz
atauxz
hanya dengan mengompresi setiap chunk secara independen, jadi ini membutuhkan recompression.Jawaban:
Berpisah dan bergabung dengan file besar berfungsi, tetapi tidak mungkin untuk mendekompres bagian file terkompresi, karena informasi penting didistribusikan melalui seluruh dataset. Cara lain; pisahkan file yang tidak dikompresi dan kompres satu bagian. Sekarang Anda dapat mendekompres setiap bagian. Tapi kenapa? Anda harus menggabungkan semua bagian yang terkompresi sebelum diproses lebih lanjut.
sumber
gzip
atauxz
), Anda dapat melakukan penggabungan dan dekompresi, atau dekompresi dan penggabungan. Perintahnya tidak masalah.