Учитывая gzip сжатый файл, как мне узнать, какой уровень сжатия (1-9) использовался для него?
4 ответа
Он хранится в заголовке файла. Чтобы увидеть это, используйте команду file
. Например:
$ file testfile.gz
testfile.gz: gzip compressed data, from Unix, last modified: Sun Sep 15 14:22:19 2013, max compression
К сожалению, в заголовке есть только три возможных значения: максимальная скорость (уровень 1), максимальное сжатие (уровень 9) и "нормальное" (все остальные уровни). Но лучше, чем ничего!
Нет прямого способа определить уровень gzip.
По моему мнению, единственный способ определить это - распаковать файл и сжать его на разных уровнях, а затем сравнить результаты с существующим размером файла.
Я считаю, что уровень по умолчанию равен 6, поэтому в большинстве случаев это должен быть ваш ответ
gzip -l <filename>
даст вам коэффициент сжатия, но нет никакого способа непосредственно найти используемый уровень сжатия.
Нет прямого способа узнать это. Это наиболее вероятно 6 (текущее значение по умолчанию) или 9 (лучшее сжатие). вам нужно попробовать и сравнить.
См. Https://stackoverflow.com/questions/16153334/how-to-determine-the-compression-level-of-deflate.