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 :

comment zipper un fichier de n'importe quel extension


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut comment zipper un fichier de n'importe quel extension
    Bonjour

    Dans un script je recois plusieurs fichiers de différentes extensions.

    J'aimerais utiliser une commande dans script_2 qui va zipper ces fichiers.

    Ces fichiers seront dézippées sur un pc fonctionnant sous windows.


    Script_1 ==> contient une ligne: echo "$fichier"

    puis dans script_2 il y a :

    ......................
    Script_1
    zipper $fichier
    .......................
    .......................

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Bonjour,
    Tu veux créer une archive compressée contenant tous les fichiers ou bien compresser chaque fichier indépendemment ?

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je comprends pas ce que tu dis : tu dis que dans un script tu reçois plusieurs fichiers, et dans ton exemple tu ne traites que d'un seul fichier ($fichier). Détaille un peu plus, steuplé

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Ok je m'explique. c'est plus simple que ça a l'air

    J'ai deux scripts appelés script_1 et script_2

    Script_1 appelle script_2

    Script_2 crée un fichier (exemple toto.txt)

    Je veux que script_1 prends toto.txt et le zip pour produire toto.txt.zip

    N-B :Le zippage se fait dans unix, alors que le dézippage se fait sur windows(PC de l'utilisateur) je ne sais pas si la commande zip est toujours bonne pour ce type d'action.

  5. #5
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Bonsoir,
    Montre-nous ce que tu as déjà fait pour voir ce qui cloche.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    gzip est le mieux pour faire dans ce sens-là..

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 964
    Par défaut
    Citation Envoyé par souviron34
    gzip est le mieux pour faire dans ce sens-là..
    gzip disponible en standard sous tous les Windows ?

    dans script_1, on supposant que script_2 renvoit le nom (complet : path compris…) du fichier via stdout et utilise exit avec un code non nul pour notifier une erreur… et que script_2 est dans le dossier courant… (sinon mettez son chemin complet au lieu de ./script_2) … et qu'il a les permissions d'exécutions (chmod 755)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    fname=`./script_2`
    if [ $? -ne 0 ]
    then
        echo "error processing file" 1>&2
        exit 1
    fi
    # will create "$fname".zip in its enclosing directory
    pushd `dirname "$fname"` > /dev/null
    f=`basename "$fname"`
    zip "$f" "$f"
    popd > /dev/null
    ce script créera le zip à côté de l'original, et le chemin du fichier dans l'archive sera "vide" : lors du désarchivage, le fichier sera placé dans le cwd…

    à adapter selon vos besoins… qui restent assez vagues…

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par JeitEmgie
    gzip disponible en standard sous tous les Windows ?

    dans script_1, on supposant que script_2 renvoit le nom (complet : path compris…) du fichier via stdout et utilise exit avec un code non nul pour notifier une erreur… et que script_2 est dans le dossier courant… (sinon mettez son chemin complet au lieu de ./script_2) … et qu'il a les permissions d'exécutions (chmod 755)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    fname=`./script_2`
    if [ $? -ne 0 ]
    then
        echo "error processing file" 1>&2
        exit 1
    fi
    # will create "$fname".zip in its enclosing directory
    pushd `dirname "$fname"` > /dev/null
    f=`basename "$fname"`
    zip "$f" "$f"
    popd > /dev/null
    ce script créera le zip à côté de l'original, et le chemin du fichier dans l'archive sera "vide" : lors du désarchivage, le fichier sera placé dans le cwd…

    à adapter selon vos besoins… qui restent assez vagues…
    J'ai fais un essai sur la ligne de commande avez zip et ca me donne une erreru pour les grands fichiers.

    Lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zip fichier_zipper xxxx.xml
    et xxx.xml est petit, tout marche bien. le taux de compressage est de 79%.

    mais lorsque xxx.xml est un gros fichier (2 GO), je recois l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zip error : Nothing to do! (<a href="http://www.zip)" target="_blank">www.zip)</a>
    Qu'est ce que ca veut dire cette erreur ?

    Y a t-il un taux de compressage mieux que 79% ?

    Merci.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par souviron34
    gzip est le mieux pour faire dans ce sens-là..
    Pourquoi gzip est mieux dans ce cas ?

    Zip ne peut zipper les gros fichiers.

    C'est quoi la syntaxe de gzip pour l'essayer aussi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gzip nouveau_fichier fichier_à_zipper.txt
    Ne marche pas. Faut rajouter des paramètres peut-être.

    Diamonds

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 964
    Par défaut
    Citation Envoyé par diamonds
    J'ai fais un essai sur la ligne de commande avez zip et ca me donne une erreru pour les grands fichiers.

    Lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zip fichier_zipper xxxx.xml
    et xxx.xml est petit, tout marche bien. le taux de compressage est de 79%.

    mais lorsque xxx.xml est un gros fichier (2 GO), je recois l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zip error : Nothing to do! (<a href="http://www.zip)" target="_blank">www.zip)</a>
    Qu'est ce que ca veut dire cette erreur ?
    que l'implémentation de zip sur votre plate-forme ne supporte pas les fichiers > 2Go… (une limitation assez "classique"…)

    il faut splitter les fichiers avant de les zipper…
    (man csplit ; man split)

    ou utiliser autre chose que zip…
    mais vous avez un critère de compatibilité Windows… donc prudence…
    notamment avec gzip… tous les "unzip" de Windows ne reconnaissent pas le format gzip… (dont l'extension par défaut sous Windows est .z au lieu de .zip pour les archives "zip")

    (si vous contrôler l'environnement Windows en question et que vous pouvez installer ce que vous voulez cela devient secondaire, mais si c'est pour distribuer au tout venant…)

    le taux de compression dépend des données en entrée…
    et il existe de méthodes plus efficaces que zip…

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par JeitEmgie
    que l'implémentation de zip sur votre plate-forme ne supporte pas les fichiers > 2Go… (une limitation assez "classique"…)

    il faut splitter les fichiers avant de les zipper…
    (man csplit ; man split)

    ou utiliser autre chose que zip…
    mais vous avez un critère de compatibilité Windows… donc prudence…
    notamment avec gzip… tous les "unzip" de Windows ne reconnaissent pas le format gzip… (dont l'extension par défaut sous Windows est .z au lieu de .zip pour les archives "zip")

    (si vous contrôler l'environnement Windows en question et que vous pouvez installer ce que vous voulez cela devient secondaire, mais si c'est pour distribuer au tout venant…)

    le taux de compression dépend des données en entrée…
    et il existe de méthodes plus efficaces que zip…
    Quelles sont ces méthodes qui sont plus efficaces et dont les unzip de windows reconnaissent ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par JeitEmgie
    que l'implémentation de zip sur votre plate-forme ne supporte pas les fichiers > 2Go… (une limitation assez "classique"…)

    il faut splitter les fichiers avant de les zipper…
    (man csplit ; man split)

    ou utiliser autre chose que zip…
    mais vous avez un critère de compatibilité Windows… donc prudence…
    notamment avec gzip… tous les "unzip" de Windows ne reconnaissent pas le format gzip… (dont l'extension par défaut sous Windows est .z au lieu de .zip pour les archives "zip")

    (si vous contrôler l'environnement Windows en question et que vous pouvez installer ce que vous voulez cela devient secondaire, mais si c'est pour distribuer au tout venant…)

    le taux de compression dépend des données en entrée…
    et il existe de méthodes plus efficaces que zip…
    Je viens de faire un essai avec gzip et ça a l'air de marcher.
    ça donne l'extension gz.
    J'ai ensuite unzipper avec winzip sous windows et ca me donne mon fichier original (mais le unzip a duré plus longtemps que le gzip et il a fini par me donner une erreur du type "time out")

    Y a-il moyen d'augmenter le temps pour ce compteur ? peux-être dans le Winzip lui même ou bien dans IE.

    Diamonds

Discussions similaires

  1. comment accéder au serveur de n'importe quel poste
    Par dj_techno dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 18/11/2008, 09h14
  2. Comment lancer mon application sous n'importe quel répertoire ?
    Par condor_01 dans le forum Applications et environnements graphiques
    Réponses: 13
    Dernier message: 15/11/2007, 00h02
  3. comment zipper plusieurs fichiers dans un seul
    Par diamonds dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2007, 21h15
  4. [Abrevia] Comment zipper un fichier sans inclure son répertoire ?
    Par DelphiSteph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/02/2005, 21h01
  5. [Fichier Zip] Comment zipper un fichier
    Par caro_a dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/05/2004, 10h40

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