Как проверить, является ли файл gzipped пустым?

Есть ли быстрый способ проверить, является ли gzipped-файл пустым, или я должен сначала разархивировать его?

Пример:

$ touch foo
$ if [ -s foo ]; then echo not empty; fi
$ gzip foo
$ if [ -s foo.gz ]; then echo not empty; fi
not empty
$ wc -l foo.gz
      1 foo.gz
10 голосов | спросил dogbane 1 FebruaryEurope/MoscowbTue, 01 Feb 2011 16:34:45 +0300000000pmTue, 01 Feb 2011 16:34:45 +030011 2011, 16:34:45

2 ответа


4

Если «пустой» означает, что несжатый файл равен 0 байтам, вы можете использовать gzip --list foo.gz, чтобы определить размер несжатого файл, для его автоматизации потребуется некоторое разбор. Это выглядит примерно так:

$ gzip --list foo.gz
         compressed        uncompressed  ratio uncompressed_name
                 24                   0   0.0% foo
ответил jsbillings 1 FebruaryEurope/MoscowbTue, 01 Feb 2011 18:13:35 +0300000000pmTue, 01 Feb 2011 18:13:35 +030011 2011, 18:13:35
0

Обратите внимание, что формат файла gzip допускает только 32 бита для хранения исходного размера файла, поэтому номер имеет размер по модулю 2 ^ 32. Следовательно, размер, заданный «gzip -l», не является окончательным критерием для пустоты.

ответил Brendan 5 J000000Thursday12 2012, 15:39:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132