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 :

garder la source d'un gzip / {} dans find


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 219
    Par défaut garder la source d'un gzip / {} dans find
    Bonjour,

    Grâce à un post trouvé ici-même, j'ai pu trouver une solution mais j'aimerais savoir s'il n'y a pas plus joli.

    Donc la réponse est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name '*.foo' -exec bash -c "gzip -c '{}' >> '{}'.gz" \;
    Tout d'abord, pourquoi n'y a-t-il pas d'option pour gzip permettant de garder le fichier source. Là, l'astuce que j'ai trouvé, c'est donc de balancer le flux gzip sur stdout et d'enregistrer ça dans un fichier qui porte le même nom.gz.
    C'est moche.

    Ensuite, pourquoi est-on obligé de passer par une écriture aussi lourde pour pouvoir réutiliser {} ?

    Le tout fait un truc bien moche qui permet de gzipper mes .foo sans toucher à ces derniers.

    Merci.

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    J'ai trouvé ceci, est-ce que c'est mieux?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.foo" -exec tar czf {}.gz {} \;

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Citation Envoyé par jmelyn Voir le message
    J'ai trouvé ceci, est-ce que c'est mieux?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.foo" -exec tar czf {}.gz {} \;
    Attention, ca ne fait pas la meme chose. Dans ce cas-ci, tu cherches tous les fichiers *.foo, et tu crees une archive tar compressée pour chacun d'entre eux.

    Dans la ligne de commande du premier post, le but est de compresser tous les fichiers *.foo dans un seul fichier compressé.



    Sinon, talvins, tu as un probleme de comprehension de gzip. Tu viens probablement du monde windows, dans lequel est allegrement confondu archive et compression - erreur classique due aux utilitaires de compression sur cet OS.

    Mettre plusieurs fichiers dans un meme fichier, ca s'appelle de l'archivage. L'utilitaire le plus connu pour ce faire est tar.
    Compresser un fichier pour qu'il prenne moins de place s'appelle de la compression, et ca ne se fait que sur un seul fichier. Les utilitaires les plus connus sont gzip, bzip2, ...

    Il se trouve que sous Windows, tous les utilitaires qui font de la compression font en realite aussi de l'archivage, mais de maniere transparente pour l'utilisateur.

    Dans ton cas, tu dois explicitement creer une archive, et eventuellement la compresser si besoin.

    Exemple en utilisant l'utiltaire de compression bzip2, que l'on appelle dans tar avec l'option j :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tar cfj archive.tar.bz2 `find . -name "*.foo"`
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Oops, merci gangsoleil!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 219
    Par défaut
    Niet.

    Je viens du monde Amiga puis linux (slackware) puis Windows pour le poste de travail et Debian pour mes serveurs.

    Je ne veux pas faire d'archive mais bien un gzip. Le but est de gzipper toute une série de fichiers dans des gzip distincts.

    C'est vraiment par curiosité puisque je n'ai plus besoin de cela (et que la ligne que j'ai indiquée fonctionne très bien).

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/07/2007, 11h11
  2. [Sources]Créer un bouton dans une barre d'outils
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 2
    Dernier message: 19/03/2007, 12h32
  3. Réponses: 3
    Dernier message: 26/09/2006, 11h06
  4. Réponses: 7
    Dernier message: 07/07/2006, 12h23
  5. Garder la proportionalité de l'image dans un TImage
    Par Bourak dans le forum Composants VCL
    Réponses: 1
    Dernier message: 28/10/2005, 15h03

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