Kompres file zip dengan kompresi lebih tinggi

10

Saya memiliki banyak file zip yang dikompres menggunakan perintah zip. Saya ingin mengkompres ulang mereka dengan flag -9 untuk meningkatkan rasio kompresi. Adakah yang tahu kalau itu bisa dilakukan tanpa dekompresi manual lalu mengompres.

PS. Saya perlu menyimpannya sebagai file zip karena disajikan untuk pengguna windows (dan karenanya memiliki spasi putih dalam nama mereka)

Smartelf
sumber
kompresi ulang hanya dimungkinkan dengan mendekompres file dan mengompres lagi. itu tergantung algoritma. Anda juga dapat mencoba bzip2 atau xz yang lebih baik.
Tip: ini juga dapat dilakukan dengan file XLSX atau XLSM Excel karena sebenarnya file ZIP yang berisi XML dan hal-hal lain.
Cristian Ciupitu

Jawaban:

10

Anda tidak dapat meningkatkan rasio kompresi, tanpa mendekompres data. Anda tidak perlu mengekstrak semua file zip sebelum mengompresnya, tetapi saya akan merekomendasikan untuk tidak mengompres satu file zip keseluruhan sebelum mengompres ulang.

Dimungkinkan untuk mengkompres ulang file dalam file zip satu per satu dan menambahkannya kembali sebelum pergi ke file berikutnya yang terkandung dalam file zip. Ini membutuhkan N penulisan ulang file zip untuk file zip yang berisi file N. Jauh lebih efisien untuk mengekstrak file N dan menghasilkan zipfile baru dalam sekali jalan, mengompresi semua file dengan -9.

Anthon
sumber
1
Tujuan saya bukan untuk menghindari dekompresi, tetapi untuk menjaga struktur arsip tetap sama. dan tidak mengubah metadata file apa pun.
Smartelf
1
@Smartelf Saya tidak berpikir Anda dapat menghindari dekompresi. Persyaratan Anda yang lain dimungkinkan, tidak ada alasan data harus diubah.
terdon
2
@ Smartmart seperti yang sudah saya sebutkan, Anda ** harus ** mengkompres ulang. Menetapkan metadata file yang sama seharusnya tidak menjadi masalah jika Anda melakukan ini misalnya dengan program Python dan modul zip-nya. Dengan unzip/ zipmenjaga metadata yang sama mungkin lebih sulit.
Anthon
6

Ada utilitas bernama AdvanceCOMP yang melakukan persis apa yang Anda cari. Ini mengkompres ulang file ZIP dan GZ (dan beberapa lainnya) tanpa ekstraksi perantara ke disk. (Saya percaya bahwa mekanisme yang digunakan adalah untuk mendekompresi data dan mengompresnya kembali, tetapi itu tidak memerlukan penulisan file ke disk atau regenerasi metadata.)

gaelicWizard
sumber