Renommer un fichier sur Linux

Renommer un fichier fait partie des tâches de base Ă  maĂ®triser en ligne de commande sur Linux. Hors, la tâche est relativement simple Ă  rĂ©aliser avec un seul fichier, mais devient plus complexe lorsqu’il y en a plusieurs. Dans ce tutoriel, je vous explique comment renommer un fichier ou un rĂ©pertoire sur Linux avec les commandes mv et rename.

Avec la commande mv

La commande mv est l’abrĂ©viation de move en anglais. Elle permet de dĂ©placer un fichier ou un rĂ©pertoire d’un emplacement Ă  un autre. Cette commande permet aussi de renommer un fichier, en le dĂ©placement sous un nouveau nom. Elle est intĂ©grĂ©e aux coreutils et donc installĂ©e par dĂ©faut.

Renommer un fichier ou un répertoire sur Linux avec mv

La syntaxe de la commande mv pour renommer un fichier est la suivante :

mv [OPTIONS] source destination

Par exemple, pour renommer le fichier ancien_nom.txt vers nouveau_nom.txt, vous devez utiliser la commande suivante :

mv ancien_nom.txt nouveau_nom.txt

⚠️ Attention : La commande mv peut Ă©craser le fichier de destination si l’option -i n’est pas spĂ©cifiĂ©e.

Utilisez la commande ls -l pour visualiser le résultat :

ls -l
Renommer un fichier avec Linux

Vous pouvez bien entendu modifier la destination du fichier, si vous souhaitez le déplacer à un autre emplacement, tout en renommant votre fichier. Par exemple :

mv /ancien/emplacement/ancien_nom.txt /nouvel/emplacement/nouveau_nom.txt

Vous pouvez utiliser mv pour renommer un répertoire de la même manière que pour un fichier :

mv /emplacement/ancien_nom_répertoire /emplacement/nouveau_nom_répertoire

Renommer plusieurs fichiers avec mv

La commande mv ne peut renommer qu’un seul fichier Ă  la fois. Mais vous cherchez peut-ĂŞtre Ă  renommer plusieurs fichiers en une seule fois. C’est lĂ  que ça se corse ! En effet, pour rĂ©aliser cette tâche avec mv, vous devez l’utiliser en combinaison avec une boucle for ou une recherche find pour renommer plusieurs fichiers simultanĂ©ment.

Par exemple, nous allons utiliser une boucle for pour modifier l’extension de plusieurs fichiers .html en .old :

for f in *.html; do
    mv -- "$f" "${f%.html}.old"
done

Analysons le code ligne Ă  ligne :

  • La première ligne créée une boucle for et itère tous les fichiers qui se terminent par l’extension .html.
  • La deuxième ligne s’applique Ă  chaque itĂ©ration et renomme chaque fichier en modifiant l’extension .html Ă  .old.
  • done indique la fin de la boucle

Ce deuxième exemple montre le mĂŞme exemple avec l’utilisation de find en combinaison avec mv :

find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.old"' \;

La commande find recherche tous les fichiers se terminant par .html dans le répertoire courant. Ensuite, -exec exécute la commande mv sur tous les fichiers qui correspondent à la recherche.

Comme vous pouvez le voir, l’utilisation de mv pour renommer plusieurs fichiers n’est pas simple et nĂ©cessite de bonnes compĂ©tences en bash.

Les options courantes Ă  utiliser avec mv

Voici quelques options Ă  utiliser avec la commande mv :

  • -i : affiche un message d’avertissement avant d’Ă©craser un fichier
  • -f : ne demande pas de confirmation avant d’Ă©craser. C’est un peu le comportement par dĂ©faut de mv.
  • -v : affiche ce que la commande a effectuĂ©

⚠️ Attention : Si vous utilisez les options -f et -i simultanément, la dernière option spécifiée prendra le dessus.

Pour en savoir plus sur mv, je vous invite Ă  taper man mv dans votre terminal ou Ă  consulter le manuel des coreutils.

La commande rename pour renommer plusieurs fichiers sur Linux

rename est une alternative Ă  mv pour renommer plusieurs fichiers basĂ©e sur les expressions Perl. Une fois sa syntaxe maĂ®trisĂ©e, elle sera plus puissante et plus simple Ă  utiliser pour ce type d’opĂ©ration.

Tout d’abord, installez le paquet rename. Sur Debian :

sudo apt install rename 

Vous pourrez ensuite utiliser rename. Voici quelques exemples. On commence par renommer tous les fichiers .pdf en .txt situés dans un répertoire :

rename -v 's/.pdf/.txt/' *.pdf

Pour tester le rĂ©sultat de la commande sans renommer vos fichiers, utilisez l’option -n :

rename -n 's/.txt/.pdf/' *.txt

Remplacer une partie d’un nom de fichier. Par exemple, « fichier » par « file » de tous les .txt :

rename -v 's/fichier/file/' *.txt

Convertir les noms de fichiers en majuscules d’un rĂ©pertoire :

rename -v 'y/a-z/A-Z/' *

Convertir les noms de fichiers en minuscule d’un rĂ©pertoire :

rename -v 'y/A-Z/a-z/' *
David Jovanovic
David Jovanovic
Fondateur de Lecoindunet et rédacteur à mes heures perdues, ma passion pour l'informatique et mes expériences professionnelles m'ont permis d'acquérir de solides connaissances dans les domaines liés aux nouvelles technologies. En démarrant ma carrière comme technicien, puis en devenant développeur et responsable informatique, je fais de ma polyvalence ma force et aspire à partager mes connaissances sur le web.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici