Comment changer toutes les extensions de fichier dans un dossier à l'aide d'une commande sur CLI sous Linux? P>
5 Réponses :
Utiliser renommer code>: p>
renommé 's / .old $ /. nouveau /' * .old code> p> p>
Ce qui précède n'a pas fonctionné pour moi. Mais cela a travaillé pour moi. >> Renommer .htm .html * .htm
Source: Ajouter récursivement l'extension de fichier à tous les fichiers (Pas ma réponse.) P>
trouver. -Type f -exec mv '{}' '{}'. JPG \; code> p> blockQuote>
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. P>
En réalité, cela ne supprime pas l'ancienne extension, mais aussi ajoute la nouvelle extension.
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
Vous pouvez utiliser une boucle pour la ligne de commande:
for foo in *.old; do mv $foo `basename $foo .old`.new; done
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