Comment simplifier la compression 7z avec des alias Bash

Il existe de nombreuses façons et de nombreux outils que vous pouvez utiliser pour réduire la taille de vos fichiers, soit pour réduire l’espace qu’ils occupent, soit pour les envoyer sous forme de paquet à un contact. Parmi ceux-ci, 7-Zip a atteint la première place pour la plupart des utilisateurs, grâce à sa combinaison unique de performances élevées et de niveaux de compression sans coût.
Toutes les formes de compression dans ce format s’avèrent plus compliquées que l’approche que nous allons voir ici. Du moins pour la plupart des utilisateurs qui utilisent la compression pour empaqueter tout dans un dossier et ses sous-dossiers en “paquets” compressés.
Alors voyons comment nous pouvons combiner le support des alias de Bash avec la version en ligne de commande de 7z pour créer des paquets de nos fichiers avec une simple commande.
Installer p7zip
En tant qu’outil de compression le plus populaire, 7-Zip est très probablement déjà installé dans votre distribution Linux. Pour le tester, essayez la commande “7z” dans un terminal. Si ce n’est pas installé, vous pouvez l’installer dans les distributions basées sur Ubuntu/Debian avec la commande :
sudo apt-get install p7zip-full
Créer un fichier d’alias Bash
Les alias de Bash permettent de mapper des commandes ou même des séquences de plusieurs commandes en un seul mot. La façon la plus simple d’ajouter des alias à Bash est de les insérer à la fin du fichier “~/.bashrc”. Pour des raisons de commodité et d’organisation, il est préférable de les placer dans un fichier séparé.
Il est probable que ce fichier existe déjà, et la configuration de Bash inclut une référence à celui-ci. Vérifiez-le en ouvrant “~/.bashrc” dans votre éditeur de texte préféré, et recherchez :
if[-f ~/.bash_aliases]; then . ~/.bash_aliases Fi
Si ce n’est pas le cas, ajoutez-le à la fin du fichier après tout ce qui s’y trouve déjà.

Avoir les informations de 7-Zip à portée de main
Vous pouvez exécuter 7-Zip dans un terminal pour voir un récapitulatif de ses options en ligne de commande. Pour des informations plus complètes, consultez ce guide utilisateur ou la page de manuel du programme avec :
man 7z
Cela vous aidera à configurer vos propres commandes de compression. Très probablement, celles que nous allons voir ici couvriront également vos besoins. Vous pouvez donc les copier-coller dans votre propre fichier .bash_aliases.

Créer l’alias de compression ultra
Ouvrez le fichier “~/.bash_aliases” dans votre éditeur de texte préféré – nous utilisons nano. Entrez :
alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'

alias 75 indique que nous voulons créer la commande “75” que nous utiliserons à partir de maintenant pour compresser tous les fichiers et dossiers d’un répertoire en un paquet 7-Zip. La raison pour laquelle nous avons adopté ce nom particulier pour notre commande est qu’il est facile à retenir comme une version courte de “niveau de compression 7zip 5”.
7z est la commande de compression elle-même. Le a qui suit signifie “nous voulons ajouter des fichiers à un nouveau paquet compressé.” -r indique que p7zip ne doit pas être “construit dans le dossier où il a été exécuté” mais doit inclure le paquet compressé final et tous les sous-dossiers, avec tout son contenu.
-t7z -m0=lzma2 indique que nous voulons créer des paquets 7zip qui utilisent principalement l’algorithme LZMA2 pour la compression des fichiers. Cela donne généralement la meilleure compression pour la plupart des types de fichiers.
-mx=9 -myx=9 correspondent au niveau de compression et à “la quantité d’effort” que 7-Zip mettra dans l’analyse du contenu des fichiers à compresser pour trouver la meilleure stratégie de compression. Plus leurs valeurs sont élevées, plus la compression est grande et plus le paquet produit est petit.
Enfin, -mqs=on -ms=on définit que nous voulons une compression “solide”. Cela signifie que p7zip compressera des fichiers similaires en un seul bloc de données, obtenant ainsi de meilleurs résultats. La raison pour laquelle ils existent en tant qu’option que vous pouvez désactiver est qu’ils sont utiles mais comportent également deux inconvénients. Ils prolongent le temps de compression et rendent impossible la décompression de fichiers indépendants du paquet final produit par le compresseur. Avec la compression solide, vous ne pouvez pas faire l’équivalent de “extraire un seul fichier d’un zip”, et vous devez décompresser l’ensemble du paquet pour accéder à son contenu.
Répliquer et “réduire” l’alias
Nous avons commencé avec la commande qui atteint la compression maximale possible afin qu’au lieu de devoir l’étendre avec plus d’éléments, nous puissions revenir en arrière, en supprimant des paramètres et en réduisant les valeurs définies.
Commencez par copier la commande existante cinq fois de plus, en plaçant chaque commande sur sa propre ligne. Laissez la première ligne telle quelle, car elle atteint déjà le niveau de compression le plus élevé possible. Modifiez le reste, dans l’ordre, en supprimant les options supplémentaires et en réduisant les niveaux de compression comme vous le voyez ci-dessous. N’oubliez pas de changer leurs alias pour correspondre aux niveaux de compression inférieurs.

Vous pouvez toujours copier ce qui suit et le coller dans votre ~/.bash_aliases à la place.
alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on' alias 74='7z a -r -t7z -m0=lzma2 -mx=9' alias 73='7z a -r -t7z -m0=lzma2 -mx=7' alias 72='7z a -r -t7z -m0=lzma2 -mx=5' alias 71='7z a -r -t7z -m0=lzma2 -mx=3' alias 70='7z a -r -t7z -m0=lzma2 -mx=1'
Activer vos alias
Enregistrez les modifications apportées au fichier et revenez au terminal. Pour charger et activer vos nouveaux alias, utilisez la commande :
source ~/.bashrc
Vos nouvelles commandes de compression sont actives. P7zip fonctionne par défaut sur tous les fichiers dans le répertoire où il s’exécute si vous ne définissez pas “ce que vous voulez compresser” comme paramètre. Donc, tout ce que vous devez faire à partir de maintenant lorsque vous souhaitez compresser le contenu d’un dossier en un paquet 7z est d’entrer la commande :
75 nom_archive
Ici, “75” est l’alias pour le niveau de compression le plus élevé d’avant, et “nom_archive” est le nom du paquet de fichiers compressés. Vous pouvez remplacer “75” par l’un des autres alias (de 75 à 70) pour une compression plus petite mais plus rapide, et utiliser le nom que vous souhaitez pour le fichier final.

Si vous avez des questions, faites-le nous savoir dans les commentaires ci-dessous.