Выполнить пробный прогон сжатия (т. Е. Не выводить файл)

Есть ли способ выполнить пробное сжатие в формат RAR или 7-Zip? (Командная строка в порядке.) Я хотел бы получить точную сжатую оценку размера.

Я попытался найти вариант для него в WinRAR и 7-Zip, даже посмотрел на их переключатели CL, но не повезло.

1 ответ

Вы можете использовать gzip для предварительного просмотра сжатия zip (deflate) и xz для предварительного просмотра 7zip сжатия (lzma), как это:

gzip -c $1  | wc -c
xz --format=lzma -c $1  | wc -c

Опционально труба для numfmt --to=iec чтобы количество байтов было легко читаемым.

Обратите внимание, что он работает только для отдельных файлов, и в подсчете отсутствует заголовок архива.

Вы можете найти все двоичные файлы, необходимые для Windows, в пакете git sdk.

Я не знаком с WinRAR или 7-Zip, но быстрый взгляд на онлайн-справку WinRAR показывает, что вы можете использовать -P а также -inul флаги для направления сжатого вывода в stdout, Вы можете передать это на wc утилита, стандартная для Linux и MacOS и доступная для Windows как часть подсистемы Windows 10 для Linux или утилит GnuWin32 (см. textutils пакет).

Например:

rar -P -inul <rest of WinRAR parameters...> | wc -c

Это вернет количество символов (байтов), которыми был бы сжатый файл, если бы он был записан на диск.

Другие вопросы по тегам