Renomer liste fichier linux

Salut,

Qui peut me donner le script pour modifier des fichiers sous linux version debian.exemple j'ai des fichiers du type 1005 et 1006 et 1007 et je veux les modifiés en 1005. et 1006. et 1007.

Ce sont des fichiers mail sous squirmail ,je ne peux faire un cyrreconstruct de la boite seulement et seulement si il y a un point à la fin .Comme il y a 400 go de messages un par un c'est la galère .
J'ai teste quelque script mais sans aucun résultat.

Merci d'avance

3 réponses

  1. une commande qui fonctionne sans perl :

    find . -name "*.html" | while read l ; do mv -v "$l" `echo "$l" | sed "/\.html/s//\.txt/"` ;

    A+
    4
    1. Modérateur
      Salut,

      renomme tous les fichiers (dont le nom commence avec 10) d'un répertoire
      rename -v 's/(.*)/$1./'  /chemin/vers/10*
      Un exemple (dans le répertoire en cours)
      lami20j@debian:~/squirmailrep$ ls -l
      total 0
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 10010
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1005
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1006
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1007
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1008
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1009
      lami20j@debian:~/squirmailrep$ rename -v 's/(.*)/$1./' 10*
      10010 renamed as 10010.
      1005 renamed as 1005.
      1006 renamed as 1006.
      1007 renamed as 1007.
      1008 renamed as 1008.
      1009 renamed as 1009.
      lami20j@debian:~/squirmailrep$ ls -l
      total 0
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 10010.
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1005.
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1006.
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1007.
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1008.
      -rw-r--r--  1 lami20j lami20j 0 Nov 22 21:41 1009. 
      lami20j
      0
      1. Contributeur
        en bash :
        si tu n'as que ces fichiers :
        cd /le/rep
        for i in * ; do mv $i $i. ; done

        si il y a plusieurs type de fichier, tu peux spécifier :
        for i in 10[0-9][0-9] ; do mv $i $i. ; done
        (prend tous les fichier de 1000 à 1099 par exemple)

        Phiphi
        0