Renomer plusieur fichier en meme temps

Bonjour,
j'ai besoin d'une commande pour renomer tout plein de fichier d'un seul coup.
j'ai plein de fichier qui s'apelle header_* ou * est le nom d'une langue
exemple header_en_US.html ou header_alfred.htm je veux tous les renomer en nom d'origine.orig
genre header_en_US.html.orig ...
Une idee ?
Merci

8 réponses

  1. Contributeur
    Comme ça ?

    franz@elenium:~/test$ touch header_{en_US,en_GB,fr_CA,fr_FR}.html  
    franz@elenium:~/test$ ls  
    header_en_GB.html  header_en_US.html  header_fr_CA.html  header_fr_FR.html  
    franz@elenium:~/test$ for i in 'ls *'; do mv $i $i.orig; done;  
    franz@elenium:~/test$ ls  
    header_en_GB.html.orig  header_fr_CA.html.orig  
    header_en_US.html.orig  header_fr_FR.html.orig  
    franz@elenium:~/test$ 


    ;)

    Cordialement,

    Franz.

    Intel Q6600 Debian Lenny//Gentoo
    Sous Linux, 99% des bugs se situent entre le clavier et la chaise de bureau...
    1
    1. presque :)
      sauf que j'ai d'autre fichier a l'interireur donc ls * ne marche pas.
      Si je faist ls header_* ca marcheras?
      Merci :)
      0
      1. Contributeur
        Oui, fais un ls header_* :

        franz@elenium:~/test$ touch header_{en_US,en_GB,fr_CA,fr_FR}.html
        franz@elenium:~/test$ touch toto{1,2,3,4}.pouet
        franz@elenium:~/test$ ls
        header_en_GB.html  header_fr_CA.html  toto1.pouet  toto3.pouet
        header_en_US.html  header_fr_FR.html  toto2.pouet  toto4.pouet
        franz@elenium:~/test$ for i in 'ls header_*'; do mv $i $i.orig; done;
        franz@elenium:~/test$ ls
        header_en_GB.html.orig  header_fr_CA.html.orig  toto1.pouet  toto3.pouet
        header_en_US.html.orig  header_fr_FR.html.orig  toto2.pouet  toto4.pouet
        franz@elenium:~/test$ 
        


        Ainsi tu ne touches pas aux autres fichiers.

        Cordialement,

        Franz.
        0
    2. je recois ca:
      for: Command not found.
      i: Undefined variable.
      pas glop!

      :)
      0
      1. Modérateur
        Salut,

        for i in header_*; do mv "${i}" "${i}".orig; done
        0
      2. Contributeur
        Pourtant, même sans les quotes, ça passe chez moi...
        0
    3. Contributeur
      Copie-colle ce ton terminal ici (ce que tu tapes + ce que cela renvoie).
      0
      1. library-libweb.war/static_htmls$for i in 'ls header_*'; do mv $i $i.orig; done;
        for: Command not found.
        i: Undefined variable.
        voila
        merci
        0
        1. Contributeur
          Ça vient de où ça : library-libweb.war/static_htmls$ ???

          Quelle distribution utilises-tu ? Quelle est ta version de bash (bash --version) ?

          Intel Q6600 Debian Lenny//Gentoo
          Sous Linux, 99% des bugs se situent entre le clavier et la chaise de bureau...
          0
          1. Modérateur
            Salut,

            C'est le répertoire ;-)
            0
          2. Contributeur
            Je me doute bien, mais pourquoi n'y a-t-il pas de nom d'user ni d'host avant ???

            Quelle distro utilises-tu ?
            0
          3. GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
            Copyright (C) 2005 Free Software Foundation, Inc.
            0
          4. je ne sais pas je suis sur une machine qui n'est pas a moi :( je ne peux pas tout faire)
            0
          5. Contributeur
            Visiblement, pas le droit de faire des boucles sur cette machine...
            0
        2. ben c'est le fichier ou je me trouve genre franz@elenium:~/test$
          0
          1. Contributeur
            Oui, pas de soucis avec ça, c'est juste qu'un répertoire library-libweb.war à la racine, je trouve ça étrange...

            Quelle distribution utilises-tu ?
            0
        3. bon j'ai fait diferrement
          mkdir temp
          mv header_* temp

          Voila plus de fichier a l'endroit ou je ne les veut pas.
          Mais si vou trouvez une solution plus elegante je suis prennuer
          0