IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Besoin d'aide, création d'un script de compression/décompression


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 22
    Par défaut Besoin d'aide, création d'un script de compression/décompression
    Salut à tous.
    J'ai envi de me créer un script de compression/décompression grâce au bash et zenity.
    Pour l'instant je me suis limité au format 7-Zip étant donné que j'arrive pas à avancer, c'est pourquoi je vous demande votre aide.

    En gros pour l'instant ça donne ça :

    Au lancement.


    Ce qu'on veut compresser.


    Répertoire de destination.


    Nom de l'archive.


    Le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #!/bin/sh
     
    tetsuAction=`zenity --list --title="Que voulez-vous faire ?" --column="Action" "Compression" "Decompression"`
     
    if [ "$tetsuAction" = "Compression" ]; then
     
        tetsuSrc=`zenity --file-selection --multiple --separator=" "`
        tetsuDest=`zenity --file-selection --directory`
        tetsuFname=`zenity --entry --text="Entrez un nom pour l'archive"`
     
        7z a -mx=9 -m0=lzma2 ${tetsuDest}/${tetsuFname} ${tetsuSrc}
        #roxterm -e 7z a -mx=9 -m0=lzma2 ${tetsuDest}/${tetsuFname} ${tetsuSrc}
     
    elif [ "$tetsuAction" = "Decompression" ]; then
        zenity --info --text="Decomp"
    else
        exit
    fi
    Maintenant mon problème :

    Ça fonctionne seulement si je sélectionne 1 seul fichier et il ne doit y avoir d'espace ni sur le nom, ni dans les répertoires.
    Je pense que c'est une histoire de guillemet mais tout ce que j'ai pu tester jusqu'ici ne marche pas.

    Pour info voici à quoi ressemble la ligne de commande pour compresser avec 7-Zip :

    1 fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7z a -mx=9 -m0=lzma2 "/home/user/destination.7z" "/home/user/fichier_a_compresser.ext"
    Plusieurs fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7z a -mx=9 -m0=lzma2 "/home/user/destination.7z" "/home/user/fichier_a_compresser1.ext" "/home/user/fichier_a_compresser2.ext" "/home/user/fichier_a_compresser3.ext"
    Merci par avance.

  2. #2
    Membre éprouvé Avatar de nowahn
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 84
    Par défaut
    Bonjour,

    Pour éviter le problème des espaces, tu peux changer de délimiteur :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    tetsuSrc=`zenity --file-selection --multiple --separator=":"`

    Pour mettre les différentes sources sur la ligne de commande de compression, tu peux faire comme ça :

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    7z a -mx=9 -m0=lzma2 ${tetsuDest}/${tetsuFname} `IFS=: ; echo ${tetsuSrc}`
    Bien sûr, il faut le même délimiteur dans les deux commandes, et les noms de fichier et chemins ne doivent pas contenir ce caractère (':' est un bon candidat pour ça).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 22
    Par défaut
    En fait voici ce que me retourne le shell quand je fais une simulation avec 2 fichiers sélectionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7z a -mx=9 -m0=lzma2 /home/tetsumaki/Desktop/fichier compresse.7z /home/tetsumaki/fichier test 1 /home/tetsumaki/fichier test 2
    J'aimerais que ça me sorte ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7z a -mx=9 -m0=lzma2 "/home/tetsumaki/Desktop/fichier compresse.7z" "/home/tetsumaki/fichier test 1" "/home/tetsumaki/fichier test 2"

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 22
    Par défaut
    J'ai réussi de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/sh
     
    tetsuAction=`zenity --list --title="Que voulez-vous faire ?" --column="Action" "Compression" "Decompression"`
     
    if [ "$tetsuAction" = "Compression" ]; then
     
    	OLDIFS=$IFS IFS=$'\n'
    	tetsuSrc=(`zenity --file-selection --multiple --separator=$'\n'`)
    	IFS=$OLDIFS
    	tetsuDest=`zenity --file-selection --directory`
    	tetsuFname=`zenity --entry --text="Entrez un nom pour l'archive"`
     
    	roxterm -e 7z a -mx=9 -m0=lzma2 "${tetsuDest}/${tetsuFname}" "${tetsuSrc[@]}"
     
    elif [ "$tetsuAction" = "Decompression" ]; then
        zenity --info --text="Decomp"
    else
        exit
    fi
    Maintenant il faut peaufiner le tout.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Forum] Création module d'importation
    Par chnimois dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 21/05/2008, 09h59
  2. Besoin d'aide pour adapter un script
    Par Marshall31 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/05/2008, 09h18
  3. Besoin d'aide pour installer un script PHP
    Par picasso1er dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 14/09/2007, 12h00
  4. Réponses: 4
    Dernier message: 14/08/2006, 15h50
  5. Besoin d'aide pour faire un script
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 16/07/2005, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo