Выполнить пробный прогон сжатия (т. Е. Не выводить файл)
Есть ли способ выполнить пробное сжатие в формат 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
Это вернет количество символов (байтов), которыми был бы сжатый файл, если бы он был записан на диск.