Quel logiciel de compression de fichiers pour Linux offre la réduction de taille la plus élevée? [fermé]


51

Je fais une tonne de compression de fichier. La plupart des choses que je compresse ne sont que du code, je dois donc utiliser moins de compression. Je me demandais s'il y avait quelque chose qui offre une meilleure réduction de taille alors 7zip. Peu importe combien de temps il faut pour compresser ou décompresser, la taille est tout ce qui compte. Est-ce que quelqu'un connaît un tel logiciel sous Linux? Ou est-ce que 7zip est le meilleur?

Réponses:


37

7zipest plus un compacteur (comme PKZIP) qu'un compresseur. Il est disponible pour Linux, mais il ne peut créer des archives compressées que dans des fichiers normaux. Par exemple, il ne peut pas compresser un flux. Il n'est pas en mesure de stocker la plupart des attributs de fichier Unix tels que la propriété, les ACL, les attributs étendus, les liens physiques ...

Sous Linux, en tant que compresseur , vous utilisez xzle même algorithme de compression que 7zip(LZMA2). Vous pouvez l'utiliser pour compresser des archives tar.

Comme pour gzipet bzip2, il existe une variante parallèlepixz qui peut exploiter plusieurs processeurs pour accélérer la compression ( xzpeut également le faire de manière native depuis la version 5.2.0 avec l' -Toption). La pixzvariante prend également en charge l' indexation d' une tararchive compressée, ce qui signifie qu'elle est capable d'extraire un seul fichier sans avoir à décompresser le fichier dès le début.


6
Pouvez-vous développer la distinction entre "compacteur" et "compresseur" que vous faites ici?
mattdm

2
@mattdm, un compresseur ne compresse que, un compacteur compresse plusieurs éléments en une archive compressée.
Stéphane Chazelas

2
@mattdm, étrange. C'était une terminologie très courante et une distinction dans les années 90, on dirait une recherche google, ce n'est plus le cas.
Stéphane Chazelas

6
Peut-être que c'était un truc DOS? Sous Unix, la distinction entre compression et archivage est courante (comme vous dites aussi), mais je n’ai jamais entendu parler de "compacteur".
mattdm

1
@mattdm, eh bien, compact est archive + compression (éventuellement avec index, éventuellement compressé séparément), l'archivage n'implique pas de compression. Ce n’est pas une affaire de DOS, mais c’était peut-être une affaire française. En fouillant dans les archives usenet, il me semble que je n'ai que des articles à moi. Cela aurait donc pu être mon invention, même si je crois fermement que ce n'est pas le cas.
Stéphane Chazelas

65

lrzip est ce que vous cherchez vraiment , surtout si vous compressez le code source!

Citant le fichier README:

C'est un programme de compression optimisé pour les gros fichiers. Plus le fichier est volumineux et plus vous disposez de mémoire, meilleur sera l’avantage en compression, en particulier lorsque la taille des fichiers dépasse 100 Mo. L’avantage peut être choisi entre la taille (beaucoup plus petite que bzip2) ou la vitesse (beaucoup plus rapide que bzip2). [...] La caractéristique unique de lrzip est qu'il essaie de tirer le meilleur parti du RAM disponible sur votre système à tout moment pour un bénéfice maximal.

lrzip fonctionne d'abord en recherchant et en supprimant toute redondance de données longue distance avec un algorithme basé sur rzip, puis en compressant les données non redondantes.

Con Kolivas fournit un exemple fantastique dans la liste de diffusion Linux Kernel ; dans lequel il compresse une archive de 10,3 Go de quarante publications de noyau Linux jusqu'à 163,9 Mo (1,6%), et le fait plus rapidement que xz. Il n'utilisait même pas l'algorithme de second passage le plus agressif!

Je suis sûr que vous obtiendrez d’excellents résultats en compressant d’énormes quantités de code source :)

sudo apt-get install lrzip

Exemple (utilisation de l'option par défaut pour les autres options):

Ultra compression, chien lent:

lrzip -z file

Pour les dossiers, il suffit de changer lrzippourlrztar


1
Je peux aussi contester que cela lrzipfonctionne également très bien pour les sauvegardes des tar/cpio/paxarborescences de fichiers système édités, car celles-ci contiennent généralement beaucoup de redondances à longue distance, ce qui lrzipest vraiment très bon pour la compression.
Franki

10
J'ai essayé lrzipet pixzsur un fichier texte de 19 Go. Les deux ont pris environ une demi-heure pour le compresser (sur une machine hexa-core), mais le lrzfichier était deux fois plus xzpetit (2,7 contre 4,4 Go). Donc, un autre vote pour cette réponse à la place.
Fin

3
@Franki par «concours», voulez-vous dire «attester»?
Michèle

On se sent comme Pied Piper!
Denys Vitali

1
Savez-vous quelle serait la différence entre lrzip et rzip? rzip semble avoir été publié en 1998 et conçu pour fonctionner au mieux sur des fichiers très volumineux avec une redondance longue distance. Son apparence est donc similaire à celle de lrzip - je me demandais simplement si lrzip était dérivé de rzip? (rzip de rzip.samba.org )
Astara

6

Si vous recherchez une réduction de taille maximale, quelle que soit la vitesse de compression, LZMAconstitue probablement la meilleure option.

Lorsque l'on compare les différentes compressions, le compromis est généralement le temps par rapport à la taille. gziptend à se comprimer et à se décompresser relativement rapidement tout en offrant un bon taux de compression. bzip2est un peu plus lent que gziple temps de compression et de décompression, mais donne des taux de compression encore plus élevés. LZMAa le temps de compression le plus long, mais donne les meilleurs rapports avec un taux de décompression supérieur à celui de bzip2.

Sources: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html

http://tukaani.org/lzma/benchmarks.html


1
Je dois être en désaccord sur celui-ci! Le compresseur de fichiers sans perte fournissant le plus grand facteur de réduction indépendamment de la vitesse de compression qui fonctionne sur GNU / Linux est probablement soit zpaqou paq8l. Cependant, ils sont si lents qu'ils ne sont pas pratiques pour la plupart des usages du monde réel.
Franki

@Franki cool sudo apt-get install zpaq, j'ai fait quelques tests, selon wiki , qui indique que l'application serait la plus récente en 2009, mais elle perd toujours pour kgb (qui utilise PAQ6), mais kgb est BEAUCOUP plus lent ...
Aquarius Power,

@ Franki en fait, je viens de trouver que zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarcompresse plus quekgb -9
Aquarius Power

4

(réponse mise à jour) Si le temps n'a pas d'importance, utilisez ZPAQ v1.10 (ou une version plus récente), par exemple:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (l'emplacement du fichier max.cfg peut varier, consultez la liste de fichiers du paquet installé)

zpaqeffectivement compressé plus que kgb -9 newFileName.kgb yourFileName.tar.
Ceci est basé sur l'ancien algorithme PAQ6 , et est très lent ...
J'ai testé avec tous les autres compresseurs comme 7zip, lrzip, bzip2, kgb .. et zpaq les plus compressés!

Si cela kgbvous intéresse toujours: (comme c'était mon choix initial sur cette réponse, je garde donc les informations ici):
Ubuntu 14.04 a kgb 1.0b4 , exécutez-le sudo apt-get install kgbpour l'installer.

Vous trouverez ci-dessous une version de Windows que vous pouvez essayer d’exécuter / compiler kgbsous Linux, mais j’ai échoué.
La version 2 bêta 2 est disponible sur SourceForge , mais aucun fichier binaire Linux n'est disponible. Vous pouvez essayer de l'exécuter en console avec wine kgb2_console.exe -a7 -m9(la méthode -a6 -m9semble être équivalente à la meilleure méthode de 1.0b4, elle -a7est nouvelle en 2 beta2). Bien que j'aie eu une meilleure stabilité en installant .NET 2.0 avec winetricks et en courant wine "KGB Archiver 2 .net.exe"(je n'aime pas trop le faire, alors je vais rester avec Linux 1.0b4 natif qui a presque le même résultat que 2 beta2).
En tout cas, la version 2 beta2 mérite sérieusement une version native de Linux aussi! Peut-être que quelque chose peut être accompli avec MinGW, voyez ceci , mais cette commande échoue quand même mal:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. Peut-être essayer de le compiler avec dmcs(Mono)? voir cette astuce .


2

7zip n'est pas une technologie unique, mais supporte plusieurs méthodes de compression différentes (voir wikipedia 7z à ce sujet).

Une série de tests a été réalisée avec différents outils spécialement pour les fichiers source C. Je ne sais pas quels outils existent pour Linux s'ils existent toujours. Cependant, vous pouvez noter que le meilleur algorithme était PPM avec modifications (PPMII, puis PPMZ).

Si vous êtes intéressé par les outils, vous pouvez naviguer sur le site, il est en russe mais google translate peut vous aider. Il existe un grand dépôt de fichiers binaires , que vous pouvez utiliser (ou ne pourrez pas) sous Linux avec wine, si vous en avez vraiment besoin.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.