Есть ли способ выборочно предотвратить сжатие определенных типов файлов в 7-zip, как в WinRAR?
Я пытаюсь сжать огромную папку (много гигабайт) и не хочу, чтобы уже сжатые файлы (например, ZIP-файлы) были повторно сжаты - они должны храниться без сжатия.
compression
7-zip
Mehrdad
источник
источник
Ответы:
Да, можно использовать разные методы сжатия для разных файлов в одном и том же архиве 7-Zip.
Используйте версию командной строки 7-Zip с
-m
параметром, чтобы указать метод какCopy
, что означает отсутствие сжатия.Пример :
Для получения дополнительной информации см. Ключ -m (Установить метод сжатия) .
источник
-m0=Copy
не работает, попробуйте-mx=0
.Предположим, у вас есть zip-файлы и несжатые txt-файлы в вашей папке.
Первый шаг - создать архив, сжимающий текстовые файлы, используя следующую команду.
Вы можете использовать -m для установки уровней сжатия, это также зависит от используемого вами метода сжатия.
Предположим, что здесь используется только сжатие по умолчанию
Вы получите сжатый 7z сейчас.
Второй шаг будет скопировать уже сжатый файл в этот архив или создать новый архив
Существует дальнейшая разработка команды обновления здесь
И если у вас есть свобода использования графического интерфейса, обновление можно выполнить следующим образом.
источник
Я создал сценарий PowerShell, который быстро сжимает каталог, сохраняя уже сжатые типы файлов (например, файлы .zip), не пытаясь повторно сжать их. Он использует интерфейс командной строки 7zip и использует расширения имени файла, чтобы решить, следует ли сжимать или просто хранить какой-либо файл.
Вы можете найти скрипт здесь: https://gist.github.com/ivanatpr/5dea086172eab573ba71
источник
Технически сжатые файлы не сжимаются дальше, что-то около предела энтропии или около того, я забываю детали, но самое большее, что вы когда-либо получите, это менее 2%, которые я видел.
Большинство хороших компрессоров проверяют сжатие и просто сохраняют несжимаемые файлы, так как сжатие тогда увеличит накладные расходы и увеличит размер.
Конечно, есть работа и время просмотра файла в первую очередь.
Как уже говорилось в других ответах, выполнение нескольких проходов над набором файлов, вероятно, будет лучшим решением и легко поддается написанию сценариев.
Создайте архив 7z и добавьте все, НО сжатые файлы за один проход, затем добавьте предварительно сжатые файлы как несжатые данные. (Я бы сделал это таким образом, так как сжимаемое содержимое было бы тогда в начале архива, а несжимаемое все в конце. Это могло бы вытекать с диска быстрее, так как оно непрерывно)
(слишком много использовал «сжимать ...»!)
источник