Setelah file di-gzip, apakah ada cara untuk dengan cepat menanyakannya untuk mengatakan apa ukuran file yang tidak dikompresi (tanpa mendekompresinya), terutama dalam kasus di mana file yang tidak dikompresi berukuran> 4GB.
Menurut RFC https://tools.ietf.org/html/rfc1952#page-5 Anda dapat meminta 4 byte terakhir file, tetapi jika file yang tidak dikompresi adalah> 4GB maka nilainya hanya mewakiliuncompressed value modulo 2^32
Nilai ini juga dapat diambil dengan menjalankan gunzip -l foo.gz
, namun kolom "tidak terkompresi" hanya berisi uncompressed value modulo 2^32
lagi, mungkin karena sedang membaca catatan kaki seperti dijelaskan di atas.
Saya hanya bertanya-tanya apakah ada cara untuk mendapatkan ukuran file yang tidak terkompresi tanpa harus mendekompresnya terlebih dahulu, ini akan sangat berguna dalam kasus di mana file gzip berisi 50GB + data dan akan membutuhkan waktu untuk mendekompresi menggunakan metode seperti gzcat foo.gz | wc -c
EDIT: Batasan 4GB secara terbuka diakui di man
halaman gzip
utilitas yang disertakan dengan OSX ( Apple gzip 242
)
BUGS
According to RFC 1952, the recorded file size is stored in a 32-bit
integer, therefore, it can not represent files larger than 4GB. This
limitation also applies to -l option of gzip utility.
gzip
keluar pada tahun 1992. Saya akan terkejut jika ada banyak anak berusia 23 tahun berkeliaran di sekitar sini. Saya yakin ada beberapa tetapi dari apa yang saya tahu usia rata-rata adalah sekitar 30-35.
xz
yang tidak memiliki batasan itu. GNU beralih ke xz
.
xz
akan 'menyelesaikan` masalah ini.
gzip
harus lebih tua dari banyak pengguna di komunitas ini!