J'ai des centaines de gros fichiers similaires (30 mégaoctets chacun) que je veux compresser. Chaque paire de fichiers contient 99% des mêmes données (moins de 1% de différence), donc je m'attends à ne pas avoir plus de 40-50 mégaoctets d'archives.
Un fichier unique peut être compressé de 30 Mo à 13-15 Mo (avec xz -1
, gz -1
, bzip2 -1
), mais lorsque je compresse deux fichiers ou plus, je veux avoir une archive de taille 13-15MB + N*0.3MB
où N est le nombre de fichiers.
Lorsque vous utilisez tar
(pour créer une archive solide) et xz -6
(pour définir le dictionnaire de compression comme étant plus grand qu'un fichier). Mise à jour - ce n'était pas suffisant ! ), j'ai toujours des archives avec la taille N*13MB
.
Je pense que les deux gzip
y bzip2
ne m'aideront pas car ils ont un dictionnaire de moins de 1 Mo, et mon flux tar a des répétitions tous les 30 Mo.
Comment puis-je archiver mon problème dans un Linux moderne en utilisant des outils standards ?
Est-il possible de régler xz
pour compresser rapidement, mais utiliser un dictionnaire de plus de 30-60 MB ?
Mise à jour : A fait l'affaire avec tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz
. Pas sûr de la nécessité de mf=hc4
y --memory=2G
options ; mais dict=128M
définir le dictionnaire pour qu'il soit suffisamment grand (plus grand qu'un fichier), et mode=fast
rendre le processus un peu plus rapide que -e
.
0 votes
Ejecutar
xz -1 --memory=2G
n'a pas aidé, testé sur 2 et 4 fichiers de l'ensemble.