10
votes

Changer toutes les extensions de fichier dans un dossier à l'aide de CLI sous Linux

Comment changer toutes les extensions de fichier dans un dossier à l'aide d'une commande sur CLI sous Linux?


0 commentaires

5 Réponses :


16
votes

Utiliser renommer :

renommé 's / .old $ /. nouveau /' * .old


1 commentaires

Ce qui précède n'a pas fonctionné pour moi. Mais cela a travaillé pour moi. >> Renommer .htm .html * .htm



-2
votes

Source: Ajouter récursivement l'extension de fichier à tous les fichiers (Pas ma réponse.)

trouver. -Type f -exec mv '{}' '{}'. JPG \;

Explication: cela trouve récursivement tous les fichiers (-Type F) à partir du répertoire actuel (.) et applique la commande de déplacement (MV) à chacun d'eux. Notez également les citations autour de {}, de sorte que les noms de fichiers avec des espaces (et même les nouvelles lignes ...) sont correctement manipulés.


1 commentaires

En réalité, cela ne supprime pas l'ancienne extension, mais aussi ajoute la nouvelle extension.



5
votes

Si vous avez le Perl Renommer code> installé (il existe différents renommer code> implémentations), vous pouvez faire quelque chose comme ceci:

$ ls -1
test1.foo
test2.foo
test3.foo

$ rename 's/\.foo$/.bar/' *.foo

$ ls -1
test1.bar
test2.bar
test3.bar


0 commentaires

3
votes

Vous pouvez utiliser une boucle pour la ligne de commande:

for foo in *.old; do mv $foo `basename $foo .old`.new; done


0 commentaires

0
votes

Cela devrait fonctionner sur le répertoire actuel et strong> sous-répertoires. Il renommera tous les .oldextension strong> em> fichiers sous la structure de répertoire avec une nouvelle extension.

for f in `find . -iname '*.oldExtension' -type f -print`;do mv "$f" ${f%.oldExtension}.newExtension; done


0 commentaires