1

У меня есть полный диск, содержащий большой файл, который я хочу сжать, чтобы освободить место. Большинство программ сжатия требуют, чтобы у меня было достаточно свободного места на диске для хранения сжатого файла вместе с исходным файлом. Хотя gzip удаляет исходный файл после завершения, он не делает этого до тех пор, пока не будет записан сжатый файл. Как я могу выполнить сжатие на месте, обрезая исходный файл по пути?

Я не хочу делать RAM-диск для временного хранения всего сжатого файла, потому что это куча дополнительных шагов и потому что сжатый файл может быть больше, чем моя доступная память.

4 ответа4

2

Короче. NO. Сжатие файла требует определенного уровня «безотказного» мышления. Если процесс сжатия завершается неудачей, он должен иметь возможность завершиться сбоем таким образом, чтобы вы не потеряли свой файл. Что произойдет, если сжатие не будет выполнено в середине файла? Существует множество инструментов сжатия, которые могут использовать временную папку (которую можно определить), которую можно использовать для создания сжатого рабочего файла ... до завершения процесса ... затем удалите исходный файл и, наконец, поместите сжатый файл в правильная цель.

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

1

В MS File Explore щелкните правой кнопкой мыши букву драйвера, выберите свойства, выберите «Сжать этот диск для экономии места на диске», нажмите «ОК».

Если повезет, будет достаточно места, чтобы Windows начала экономить больше места, и в конечном итоге даже сжать файл, который вы хотите сжать на диске.

Обратите внимание, что при любом доступе к этому накопителю может произойти незначительное снижение производительности.

0

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

Теоретически, что-то подобное можно сделать. Использование команды dd (которая доступна для загрузки в Microsoft Windows и поставляется со многими разновидностями Unix) может позволить вам извлечь конкретный раздел файла, который затем можно сжать. Затем исходный файл необходимо изменить размер. Усечение с конца файла может быть проще, чем усечение с начала файла. (Это правда, может зависеть от того, как программный код реализуется.) Если это так, сжатие фрагментов в обратном порядке может быть значительно быстрее.

На практике я обычно находил, что лучше всего искать способы освободить достаточно места, чтобы иметь обе (сжатую и несжатую) версии одновременно. (Быстрый плагин: Я стал фанатом отчетов об использовании диска: WinDirStat «s инсталлятор или KDirStat что - то похожее в Unix без вина.) Затем я обычно хотел бы также иметь место для другой несжатой копии, поэтому я могу распаковать то, что у меня есть, и сравнить это с оригиналом. Это может быть довольно сложно, и может включать несколько разделов / дисков. Это может быть довольно сложно осуществить, но если я это сделаю, то я могу удалить две большие копии, и в этот момент я чувствую себя немного менее переполненным.

-2

Вы можете обойти проблему, если у вас есть флеш-накопитель или внешний жесткий диск. Большинство программ сжатия по умолчанию используют пользовательскую временную папку или системную временную папку. В вашем случае это будет полный диск. Тем не менее, каждая современная программа сжатия должна позволять вам изменять рабочий каталог программы.

В качестве примера возьмем 7-zip, одну из самых популярных программ сжатия. Под Tools\Options\Folders вы можете установить рабочий каталог в другую папку или диск. Так что, если у вас есть флэш-накопитель подходящего размера или внешний жесткий диск, вы можете установить его в качестве рабочего каталога и сохранить файл там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .