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

507
typo

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

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

0
Ты прав. Я забыл Это ПК. Я добавил тег сейчас. typo 7 лет назад 0

1 ответ на вопрос

0
Mike Fitzpatrick

Я не знаком с 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 

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

Кажется, что это поможет. Только одна вещь: мне нужно достаточно свободного места для того, что будет в результате файл, или stdout постоянно очищает свой буфер при получении новых данных? typo 7 лет назад 0
@ Типо, вам не нужно места на диске. Если параметры верны, WinRAR направит к stdout, который передается в stdin для `wc`, который считает байты и отбрасывает их. Ничего не будет записано на диск. Mike Fitzpatrick 7 лет назад 0
Хм, похоже, команда `p` работает только для извлечения. Он не упоминается в руководстве, но продолжает добавлять расширение «.rar» в выбранную папку и жаловаться, что не может найти указанный файл (когда я удаляю ключ `-inul`). Я также посмотрел параметр stdout в справке 7-Zip, и, хотя он доступен, он работает только с форматами xz, gzip, bzip2 и tar при использовании со сжатием. Так что, думаю, у меня закончились варианты. typo 7 лет назад 0