-
Script de compression 7zip
Suite à mon précédent article sur le script de compression zip, j'ai décidé d'améliorer celui-ci en abandonnant la compression zip au détriment de 7zip.
Pour cela, j'ai crée 2 scripts, un qui n'intègre pas de mot de passe sur les archives et un qui intègre un mot de passe sur celles-ci.
Télécharger « Script compression 7zip »
Télécharger « Script compression 7zip (avec mot de passe) »
Télécharger « Codes erreurs 7zip »
Codes de retour obtenus ici : « exit_codes.htm »
Pour commencer, j'ai crée un fichier "codes_erreurs_7zip.txt" dans /home/mickael/.scripts/7zip, fichier qui me donnera les codes de retour lors des archivages.
(cliquer sur l'image pour l'agrandir)
(cliquer sur l'image pour l'agrandir)
Comme toujours, le script fonctionne avec zenity pour afficher les boîtes de dialogue.
Afin que mon script se lance avec un clic-droit de la souris sous Linuxmint j'ai placé mon script dans :
/home/mickael/.config/caja/scripts (si le dossier scripts n'existe pas, créez le).(cliquer sur l'image pour l'agrandir)
Ensuite faire un clic-droit sur le script, aller dans "Permissions" et dans "Exécution" et cocher la case "Autoriser l'éxécution du fichier comme un programme"
(cliquer sur l'image pour l'agrandir)
Fonctionnement du script.
Pour archiver des fichiers ou des dossiers, je sélectionne ceux-ci, je fais un clic-droit et je sélectionne "Scripts" puis "7zip".
(cliquer sur l'image pour l'agrandir)
A ce moment-là une boite de dialogue va s'ouvrir pour me demander de choisir un nom pour cette archive.
(cliquer sur l'image pour l'agrandir)
Toute action sur le bouton "Annuler" permettant de sortir du script.(cliquer sur l'image pour l'agrandir)
(cliquer sur l'image pour l'agrandir)
Si aucun nom est renseigné et que l'on clique sur "Valider", alors une fenêtre d'avertissement s'ouvre pour nous prévenir que le champ était vide.
Dans ce cas là, cliquer sur valider pour revenir à la boite de dialogue permettant de choisir un nom pour l'archive.
PS : cette fonction est insérée dans une boucle, c'est à dire que tant que le champ sera vide, la fonction reviendra toujours à "Entrer le nom de l'archive"
Toute action sur le bouton "Annuler" permettant toujours de sortir du script.
(cliquer sur l'image pour l'agrandir)
(cliquer sur l'image pour l'agrandir)
Pour sortir de la boucle, je renseigne un nom pour l'archive et je clique sur valider.
PS : si le nom existe déjà dans la destination, les fichiers/dossiers viendront s'ajouter a ceux déjà présents dans l'archive.
(cliquer sur l'image pour l'agrandir)
A ce moment-là une nouvelle fenêtre va s'ouvrir pour me demander de choisir le type de compression que je souhaite choisir pour cette archive.
Si aucun choix de compression est effectué et que l'on clique sur "Valider", alors une fenêtre d'avertissement s'ouvre pour nous prévenir que nous n'avons pas fait de choix.
PS : cette fonction est également insérée dans une boucle, c'est à dire que tant que aucun choix de compression ne sera choisi, la fonction reviendra toujours à "Choisir un type de compression"
Toute action sur le bouton "Annuler" permettant toujours de sortir du script.
(cliquer sur l'image pour l'agrandir)
(cliquer sur l'image pour l'agrandir)
Je choisis donc ici le format de compression rapide et je valide mon choix.
(cliquer sur l'image pour l'agrandir)
PS : Dans la version avec mot de passe, après le choix du type de compression, une fenêtre supplémentaire s'affiche afin de renseigner votre mot passe pour l'archive, le reste du script étant le même pour les 2 versions.
Cette fonction est également insérée dans une boucle, c'est à dire que tant que aucun mot de passe ne sera inséré, la fonction reviendra toujours à "Entrer un mot de passe"
Toute action sur le bouton "Annuler" permettant toujours de sortir du script.
(cliquer sur l'image pour l'agrandir)
Enfin, je choisis la destination de l'archive ( ici pour l'exemple dans le même répertoire que les fichiers) et je clique sur "Valider".
(cliquer sur l'image pour l'agrandir)
Une fois la compression terminée, on peut voir que l'archive "archive.7z" a bien été crée.
Une fenêtre de résultat s'affiche également avec les codes de retour inscrits dans "codes_erreurs_7zip.txt" (ici aucune erreur n'a été détectée lors de l'archivage).
Ce résultat est obtenu grâce à la fonction
status=$?
ligne=$(grep $status /home/mickael/.scripts/7zip/code_erreurs_7zip.txt)
echo $ligne | zenity --text-info --title "Résultat"(cliquer sur l'image pour l'agrandir)
Autre exemple de code de retour...
(cliquer sur l'image pour l'agrandir)
En ouvrant l'archive crée, je peux voir que mes 3 fichiers sélectionnés sont bien présents dans l'archive.
(cliquer sur l'image pour l'agrandir)
L'archivage des dossiers fonctionne sur le même principe que les fichiers (boucles,codes de retour...).
(cliquer sur l'image pour l'agrandir)
(cliquer sur l'image pour l'agrandir)
Pour la version avec mot de passe, il vous sera bien évidemment demandé de renseigner votre mot de passe pour ouvrir l'archive.
(cliquer sur l'image pour l'agrandir)
Je voulais intégrer une barre de progression pour afficher l'avancement de l'archivage mais le soucis est lorsque je clique sur "Annuler" cela me ferme bien la barre de progression mais le processus lui continue.
Visiblement cela vient d'un "bug" de zenity.
J'essaierai également de réunir les 2 scripts en intégrant une fonction qui donnera le choix de mettre un mot de passe ou non ( toute aide sur l'intégration de cette fonction sera la bienvenue...)
N'hésitez pas à me faire part de vos remarques et éventuelles améliorations à apporter à ce script...
-
Commentaires