Compression de multiples dossiers

Venez poser vos questions, répondre aux interrogations des autres ou simplement vous renseigner.
Jeune Pingouin
Message(s) : 22
Inscription : 23 Jan 2016 19:44

Compression de multiples dossiers

Message par sechanbask » 23 Fév 2018 18:36

Bonjour,

Je cherche à archiver des centaines de dossiers vers des archives individuelles. L'idée c'est de prendre le moins de place possible mais de pouvoir facilement revenir chercher des éléments dans nos affaires sans à avoir à dezipper des centaines de Go.

J'ai testé cette commande :

Code : Tout sélectionner
for i in */; do zip -r "${i%/}.zip" "$i"; done



mais je voudrais plutôt utiliser lzma avec une super compression

Code : Tout sélectionner
for i in */; do lzma -e9 "${i%/}.7z" "$i"; done


mais j'obtiens l'erreur suivante :

Code : Tout sélectionner
lzma : dossier1/.7z: Aucun fichier ou dossier de ce type
lzma : dossier2/ est un répertoire : ignoré


Avez-vous une idée ?

·
Avatar de l’utilisateur
Message(s) : 153
Inscription : 10 Août 2014 08:36

Re: Compression de multiples dossiers

Message par greg » 23 Fév 2018 19:13

Si je me souviens bien, lzma (xz en fait) ne compresse pas les repertoires, juste les fichiers.

Il faut donc passer par le bon vieux tar :-)

Code : Tout sélectionner
 for i in */; do tar --lzma -cvf "${i%/}.tar.lzma" "$i"; done

·
Avatar de l’utilisateur
Message(s) : 153
Inscription : 10 Août 2014 08:36

Re: Compression de multiples dossiers

Message par greg » 23 Fév 2018 23:17

Intrigué par le choix de lzma, que j'avais évalué il y a bien longtemps comme "vaut pas le coup", je me suis amusé à refaire un petit comparatif :

Code : Tout sélectionner
original :
size 31246748

zip :
time   15m8.505s
size 14673248

lzma :
time   120m43.485s
size 13593908


Ma conclusion reste la même : lzma ne vaut pas le coup : on multiplie par 8 le temps de compression pour gagner au total 1Go en moins sur 14, soit un gain de taux de compression d'un poil plus de 7%...

Jeune Pingouin
Message(s) : 22
Inscription : 23 Jan 2016 19:44

Re: Compression de multiples dossiers

Message par sechanbask » 24 Fév 2018 01:03

Merci ça marche bien. J'ai rajouté les options de compression normalement maximum, mais j'arrive à obtenir le même taux de compression que si je le fait à la main avec 7z (qui est meilleurs que LZMA2). Pour ce travail, le temps de compression/décompression n'est pas un critère pour moi.

Code : Tout sélectionner
# for i in */; do XZ_OPT=-9e tar --lzma -cvf "${i%/}.tar.lzma" "$i"; done


Je perds 5 Mo sur 250 Mo d'archive. C'est pas énorme, mais j'ai des dossiers à archiver de plusieurs Go, alors j'ai peur de perdre des 100 de Mo...

J'ai essayé

Code : Tout sélectionner
for i in */; do XZ_OPT="-9e dict=512M" tar --lzma -cvf "${i%/}.tar.lzma4" "$i"; done
mais le resultat n'est toujours pas optimum.

J'ai fait un peu de lecture et j'ai cru comprendre que 7z et XZ ne fonctionnait pas de la même manière et que 7z était plus performant.

J'ai trouvé ça et j'essaie de l'adapté avec ce que tu m'a donné, mais pour l'instant je fait choux blanc, mais j'ai trouvé la message d'erreur vraiment drôle :

Code : Tout sélectionner
tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z


Code : Tout sélectionner
for i in */; do tar cf "$i" | 7z a -si -mo=lzma2 -mx=3  "${i%/}.tar.7z"; done



System error:
E_INVALIDARG
tar: Je refuse de créer un fichier d'archive vide (oui je suis lâche)
Try 'tar --help' or 'tar --usage' for more information.

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=fr_FR.UTF-8,Utf16=on,HugeFiles=on,24 CPUs)
Creating archive 15-283-EPS-BOIS DE LA MARCHE.tar.7z

Pingouin
Message(s) : 98
Inscription : 03 Nov 2016 19:20

Re: Compression de multiples dossiers

Message par humangeek » 13 Mars 2018 12:55

Je pense que la commande tree peu être utile pour le listing des fichiers. Notamment avec certaine option comme -f, apres le man est ton ami. A vérifier mais je ne suis pas sur que tree soit installé par défaut.

Greg, peut on avoir les options de compressions du benchmark ?

·
Avatar de l’utilisateur
Message(s) : 153
Inscription : 10 Août 2014 08:36

Re: Compression de multiples dossiers

Message par greg » 19 Mars 2018 10:08

humangeek a écrit :Greg, peut on avoir les options de compressions du benchmark ?

Code : Tout sélectionner
 time for i in */; do tar --lzma -cvf "${i%/}.tar.lzma" "$i"; done

et
Code : Tout sélectionner
 time for i in */; do tar -zcvf "${i%/}.tar.gz" "$i"; done

Pingouin
Message(s) : 98
Inscription : 03 Nov 2016 19:20

Re: Compression de multiples dossiers

Message par humangeek » 22 Mars 2018 00:51

Cool merci, j’ai remis la main sur un benchmark pas trop mal foutu, (en anglais) pour ceux que cela interresse.

https://catchchallenger.first-world.inf ... LZ4_vs_LZO

Retour vers Entraide Linux