Forum Linux.débutant Compression dans des fichiers séparés

Posté par  .
Étiquettes : aucune
0
5
avr.
2008
Bonjour, je voudrais savoir comment compresser des fichiers (peu importe le format) dans des fichiers qui portent respectivement le nom du fichier source et qui ne contient rien d'autre qu'un fichier source (1 fichier par archive).


Merci
  • # Re:

    Posté par  . Évalué à 7.

    bzip2 * ça convient ?

    Les programmes de compressions bzip et gzip ne gèrent qu'un fichier par archive de toute façons, pour compresser plusieurs fichiers il faut les combiner avec tar (ou cpio) qui ne sont pas des programmes de compression mais d'archivage.
  • # Solution générique: xargs

    Posté par  . Évalué à 4.

    Tu peux utiliser "xargs":
    ls *.bmp | xargs -I xxx ma_commande xxx xxx.zip

    "ls *.bmp" va envoyer la liste de tous les fichiers se terminant par .bmp vers la sortie standard (grace à la redirection "|" ).

    xargs va récupérer ce qui vient de l'entrée standard et exécuter ma_commande pour chaque argument. En remplaçant xxx par les arguments en question.

    Exemple:
    Tu as 3 fichiers bmp (mémé_fait_du_roller.bmp mémé_à_l_hôpital.bmp chez_le_notaire.bmp)
    Tu vas avoir ma_commande appelé 3 fois:
    ma_commande mémé_fait_du_roller.bmp mémé_fait_du_roller.bmp.zip
    ma_commande mémé_à_l_hôpital.bmp mémé_à_l_hôpital.bmp.zip
    ma_commande chez_le_notaire.bmp chez_le_notaire.bmp.zip
    • [^] # Re: Solution générique: xargs

      Posté par  . Évalué à 5.

      for i in *.bmp
      do
      macommande $i
      done

      Ca fait la même chose.
      • [^] # Plus clair pour les débutants

        Posté par  . Évalué à 2.

        Je préfère généralement les "one liners", mais je pense que ton exemple est plus clair pour ceux qui débutent.

        Pour me faire plaisir:
        for i in *.bmp; do macommande $i; done

        :-)
        • [^] # Re: Plus clair pour les débutants

          Posté par  . Évalué à 0.

          Ne pas oublier les guillemets droits pour ne pas avoir de soucis avec des fichiers qui ont des espaces dans leurs noms.
          • [^] # Re: Plus clair pour les débutants

            Posté par  . Évalué à 2.

            Exact, mais pas de guillemets droits surtout:
            for i in *.bmp; do macommande "$i"; done
            • [^] # Re: Plus clair pour les débutants

              Posté par  . Évalué à 1.

              Pourquoi "pas de guillemets droits surtout" ?

              Je me suis inspiré de wikipédia pour parler de guillemets droits, sinon j'aurais simplement dit guillemets mais ca me semblait justement plus ambigu :
              * guillemets typographiques (ou français), en forme de chevrons imbriqués : « (ouvrant) et » (fermant) ;
              * guillemets anglais : “ (ouvrant) et ” (fermant) ;
              * guillemets allemands : „ (ouvrant) et “ (fermant)
              * guillemets droits " (sans symétrie) :

              Ceci dit, effectivement plus bas ils parlent des noms unicode:
              * guillemet anglais (nom Unicode, appelé « guillemet droit » dans l'article) "
              * guillemet droit »

              Bon, en gros faut appuyer sur le 3 du clavier principal (donc pas le pavé numérique) sans shift quand on est dans le mode standard azerty.
              • [^] # Compréhensivitibilité mélanjouillée

                Posté par  . Évalué à 3.

                Je pensais que tu voulais parler des guillemets comme ça: '

                En général on dit:
                guillemet simple = '
                guillemet double = "

                Et le mieux c'est d'écrire les guillemets en question, comme ça on est sûr que les crétxxx comme moi comprennent :-)
  • # Merci

    Posté par  . Évalué à 1.

    Merci, je devrais trouver mon bonheur dans tout ça

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.