Renommer extension linux
lucien_dg
Messages postés
4
Statut
Membre
-
vic -
vic -
Bonjour,
Quelqu'un saurait comment renommer une serie de fichier d'extension .x en .y de tous les répertoires et sous reprtoires?
Quelqu'un saurait comment renommer une serie de fichier d'extension .x en .y de tous les répertoires et sous reprtoires?
7 réponses
-
c'est sans doute pas la méthode la plus élégante...
en console :
for i in `find . -name "*.x"` do cp $i ${i%.x}.y done
attention aux ` qui sont différents de ' ou de " !!
j'ai mis un "cp" au lieu de "mv" car je pense que c'est plus sur....
ensuitefor i in `find . -name "*.x"` do rm $i done
si ca a fait ce que tu voulais
Phiphi -
-
Salut,
find repertoire -name "*.ext1" -exec rename .ext1 .ext2 {} \; -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour, je voudrais faire la même chose, à une petite différence :
j'ai toto.ext1, je veux toto.ext2
Avec le bout de code proposé, j'ai toto.ext1.ext2
Pouvez vous m'aider ? -
Super c'est ce que je cherchais
Faut que je bosse le shell, je perdrai moins de temps.
Merci pour la commande -
Des solutions sympas, mais pas performantrs, pourquoi ne pas utiliser un pipe avec xargs et rename ?
johand@hathor:~/tmp$ for i in $(seq -f %03.0f 0 999); do echo $i > $i.ext1 ; done
ohand@hathor:~/tmp$ time for file in $(find . -type f -name '*ext1') ; do rename 's/ext1$/ext2/' $file; done
real 1m16.643s
user 1m8.228s
sys 0m8.501s
johand@hathor:~/tmp$ time find . -type f -name '*ext2') |xargs rename 's/ext2$/ext1/' $file; done
bash: syntax error near unexpected token `)'
johand@hathor:~/tmp$ time find . -type f -name '*ext2' | xargs rename 's/ext2$/ext1/' $file
real 0m0.551s
user 0m0.344s
sys 0m0.220s
jjohand@hathor:~/tmp$ uname -a
Linux hathor 2.6.31-16-generic #53-Ubuntu SMP Tue Dec 8 04:01:29 UTC 2009 i686 GNU/Linu
On voit les différences en temps d'exécution.....