web-dev-qa-db-fra.com

Comment faire "Fichiers à stocker sans compression" dans 7-zip?

Existe-t-il un moyen d'empêcher sélectivement la compression de certains types de fichiers dans 7-Zip, comme dans WinRAR?

J'essaie de compresser un dossier volumineux (plusieurs giga-octets) et je ne souhaite pas que les fichiers déjà compressés (par exemple, les fichiers Zip) soient recomprimés. Ils doivent être stockés sans compression.

22
Mehrdad

Supposons que vous avez des fichiers Zip et que vous avez des fichiers txt non compressés dans votre dossier.

La première étape consiste à créer une archive compressant les fichiers txt à l'aide de la commande suivante.

vous pouvez utiliser -m pour définir les niveaux de compression, cela dépend également de la méthode de compression utilisée

Supposons ici qu’il s’agit uniquement d’une compression par défaut

7z a compressed.7z *.txt -r 

Vous allez être compressé.7z maintenant.

La deuxième étape consistera à copier le fichier déjà compressé dans cette archive ou à créer une nouvelle archive.

7z u compressed.7z -u!update.7z -mx0 *.Zip 

La commande de mise à jour est détaillée ici

Et si vous avez la liberté d'utiliser une interface graphique, la mise à jour peut être effectuée de la manière suivante

enter image description here

15
Manish Singh

Oui, il est possible d’avoir différentes méthodes de compression pour différents fichiers dans la même archive 7-Zip.

Utilisez la version en ligne de commande de 7-Zip avec le paramètre -m pour spécifier la méthode en tant que Copy, ce qui signifie aucune compression.

Exemple :

7za a -m0=Copy tmp7.7z *.txt

Pour plus d'informations, voir le commutateur - m (Méthode de compression définie) .

13
harrymc

J'ai créé un script PowerShell qui compresse rapidement un répertoire en stockant les types de fichiers déjà compressés (tels que les fichiers .Zip) sans essayer de les recompresser. Il utilise l'interface de ligne de commande de 7Zip et utilise les extensions de nom de fichier afin de décider de compresser ou simplement de stocker un fichier donné.

Vous pouvez trouver le script ici: https://Gist.github.com/ivanatpr/5dea086172eab573ba71

1
ivanatpr

Techniquement, les fichiers compressés ne sont pas compressés davantage, quelque chose comme une limite d'entropie ou autre, j'oublie les détails, mais le maximum que vous obtiendrez est inférieur à 2% de ce que j'ai vu.

La plupart des bons compresseurs vérifient la compression et stockent simplement des fichiers incompressibles, car la compression augmenterait la charge et augmenterait la taille.

Bien sûr, il y a le travail et le temps de regarder le fichier en premier lieu.

Comme indiqué dans d'autres réponses, effectuer plusieurs passages sur votre ensemble de fichiers sera probablement la meilleure solution et est facilement scriptable.

Créez l'archive 7z et ajoutez le tout MAIS les fichiers compressés en une seule passe, puis ajoutez les fichiers pré-compressés en tant que données non compressées. (Je le ferais de cette façon, car le contenu compressible se trouverait au début de l'archive et le non compressible à la fin. Il serait plus rapide de rouler car il est contigu)

(utilisé 'compresse ...' trop!)

0
lornix