KDE : Compresser en multithread avec pbzip2
Table des matières
Par défaut, ARK (le gestionnaire de compression de KDE) a quelques entrées pour compresser rapidement un fichier : zip, tar, ou personnalisé.
Même si l'on choisi personnalisé, on a accès aux types d'archive compressées par défaut (zip, tar, tar.gz, tar.gz) mais ceux-ci ne supportent pas le multithreading.
Le multithreading, c'est le fait de pouvoir utiliser plusieurs processeurs en même temps.
Pour créer une nouvelle entrée dans le menu Action de KDE, il faut créer un fichier .desktop dans le dossier ~.kde4/share/kde4/services/ServiceMenu/ pour l'utilisateur ou dans /usr/share/kde4/services/ServiceMenus/ pour tous les utilisateurs.
Voici mon fichier ~/.kde4/share/kde4/services/ServiceMenu/pbzip2.desktop
Voici le contenu du fichier /home/adrien/.scripts/pbzip2.sh
Cerise sur le gâteau, si la commande tar a réussi, on une petite fenêtre de confirmation
Enjoy !
Présentation
Par défaut, ARK (le gestionnaire de compression de KDE) a quelques entrées pour compresser rapidement un fichier : zip, tar, ou personnalisé.
Même si l'on choisi personnalisé, on a accès aux types d'archive compressées par défaut (zip, tar, tar.gz, tar.gz) mais ceux-ci ne supportent pas le multithreading.
Le multithreading, c'est le fait de pouvoir utiliser plusieurs processeurs en même temps.
Ajouter un menu dans le clic droit de KDE pour compresser en tar.bz2 en multithreading
Prérequis
- Environnement KDE 4
- Ark d'installé
- pbzip2 d'installé
Créer l'entrée dans le menu ACTION de KDE
Pour créer une nouvelle entrée dans le menu Action de KDE, il faut créer un fichier .desktop dans le dossier ~.kde4/share/kde4/services/ServiceMenu/ pour l'utilisateur ou dans /usr/share/kde4/services/ServiceMenus/ pour tous les utilisateurs.
Voici mon fichier ~/.kde4/share/kde4/services/ServiceMenu/pbzip2.desktop
Code BASH :
[Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin Actions=tarpbzip2 MimeType=all/all; [Desktop Action tarpbzip2] Exec=sh /home/adrien/.scripts/pbzip2.sh %f Icon=ark Name=Compresser en tar.bz2 (Multithread)
Créer le script pbzip2.sh
Voici le contenu du fichier /home/adrien/.scripts/pbzip2.sh
Code BASH :
#! /bin/bash exist=1 nb=0 fic="$1" if [[ -f "$fic".tar.bz2 ]] then while [ $exist -eq 1 ] do let nb++ if [[ -f "$fic"-$nb.tar.bz2 ]] then exist=1 else exist=0 fi done fic="$fic"-$nb fi tar -I pbzip2 -cvf "$fic".tar.bz2 "$fic" && kdialog --title "Compression terminée" --msgbox "La compression du fichier : \n $1.tar.bz2 \n s'est terminée avec succès."
Cerise sur le gâteau, si la commande tar a réussi, on une petite fenêtre de confirmation
Enjoy !