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)
linux
zip
compression
Smartelf
sumber
sumber
Jawaban:
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
.sumber
unzip
/zip
menjaga metadata yang sama mungkin lebih sulit.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.)
sumber