Existe alguma maneira de impedir seletivamente certos tipos de arquivos de compactação no 7-zip, como no WinRAR?
Estou tentando compactar uma pasta enorme (muitos gigabytes) e não quero que os arquivos já compactados (por exemplo, arquivos ZIP) sejam compactados novamente - eles devem ser armazenados sem compactação.
compression
7-zip
Mehrdad
fonte
fonte
Respostas:
Sim, é possível ter diferentes métodos de compactação para arquivos diferentes no mesmo arquivo 7-Zip.
Use a versão da linha de comandos do 7-Zip com o
-m
parâmetro para especificar o método comoCopy
, o que significa sem compactação.Exemplo:
Para obter mais informações, consulte a opção -m (Definir método de compressão) .
fonte
-m0=Copy
não funcionar, tente-mx=0
.Vamos supor que você tenha arquivos zip e arquivos txt descompactados em sua pasta.
O primeiro passo é criar um arquivo compactando arquivos txt usando o seguinte comando.
você pode usar -m para definir níveis de compactação, isso também depende do método de compactação que você está usando
Vamos supor que aqui seja apenas a compactação padrão
Você será compactado. 7z agora.
O segundo passo será copiar o arquivo já compactado para este arquivo ou criar um novo arquivo.
Há mais elaboração do comando de atualização aqui
E caso você tenha liberdade para usar a interface gráfica, a atualização pode ser feita da seguinte maneira
fonte
Criei um script do PowerShell que comprimirá rapidamente um diretório armazenando tipos de arquivos que já estão compactados (como arquivos .zip) sem tentar compactá-los novamente. Ele usa a interface de linha de comando do 7zip e usa extensões de nome de arquivo para decidir se deseja compactar ou simplesmente armazenar qualquer arquivo.
Você pode encontrar o script aqui: https://gist.github.com/ivanatpr/5dea086172eab573ba71
fonte
Tecnicamente, os arquivos compactados não compactam ainda mais, algo sobre um limite de entropia ou algo assim, esqueço os detalhes, mas o máximo que você consegue obter é menos de 2% que eu já vi.
A maioria dos bons compressores verifica a compactação e simplesmente armazena arquivos não compactáveis, pois a compactação aumentaria a sobrecarga e aumentaria o tamanho.
Obviamente, há o trabalho e o tempo de analisar o arquivo em primeiro lugar.
Conforme discutido em outras respostas, a execução de várias passagens no conjunto de arquivos provavelmente será a melhor solução e poderá ser facilmente executável por script.
Crie o arquivo 7z e adicione tudo, exceto os arquivos compactados de uma só vez, depois acrescente os arquivos pré-compactados como dados não compactados. (Eu faria dessa maneira, pois o material compactável estaria no início do arquivo e o não compactável, tudo no final. Seria o fluxo da unidade mais rápido, pois é contíguo)
(usado 'comprimir ...' demais!)
fonte