Introduction
Linux offre plusieurs options pour renommer des fichiers, notamment en utilisant l’interface graphique et plusieurs commandes de terminal dédiées. Cela rend relativement facile le renommage de fichiers individuels, mais il peut être difficile de renommer plusieurs fichiers à la fois.
Dans ce tutoriel, nous allons passer en revue les différentes commandes que vous pouvez utiliser dans le terminal Linux pour renommer des fichiers sous Linux.
Prérequis
- Un système exécutant une distribution Linux
- Un compte avec des privilèges sudo
- Accès à la fenêtre/ligne de commande du terminal
- Accès à un éditeur de texte, tel que Vim ou Nano
Renommer des fichiers avec la commande mv
Le La commande Linux mv
(move) est utilisée pour déplacer des fichiers et des répertoires à partir du terminal. Il utilise la syntaxe suivante:
mv
Si vous spécifiez un répertoire comme destination lors de l’utilisation de la commande mv
, le fichier source se déplace vers ce répertoire. Si la destination est un autre nom de fichier, la commande mv
renomme le fichier source à ce nom à la place.
Remarque : En savoir plus sur l’utilisation de la commande mv dans notre guide pour déplacer des répertoires sous Linux.
Renommer un seul fichier avec la commande mv
L’utilisation de la commande mv
avec sa syntaxe par défaut vous permet de renommer un seul fichier:
mv
Par exemple, si nous voulons renommer example1.txt dans example2.txt, nous utiliserions:
mv example1.txt example2.txt
Comme il n’y a pas de sortie si la commande réussit, nous utilisons la commande ls
pour vérifier si le nom est modifié:
ls -l
Renommez plusieurs fichiers avec la commande mv
Seule, la commande mv
renomme un seul fichier. Cependant, le combiner avec d’autres commandes vous permet de renommer plusieurs fichiers en même temps.
Une méthode consiste à utiliser la commande find
pour sélectionner plusieurs fichiers avec un nom similaire, puis à utiliser la commande mv
pour les renommer:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
En utilisant cette syntaxe, la commande find
définit un élément du nom de fichier en cours comme paramètre de recherche. Ensuite, -exec
exécute la commande mv
sur tous les fichiers qui correspondent à la recherche, en changeant leurs noms de fichiers actuels pour le nouveau.
Par exemple, si nous avons l’exemple1.txt, example2.txt, et example3.txt et que vous voulez changer l’extension en.PDF:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
Une autre méthode consiste à utiliser la commande mv
dans le cadre d’une boucle <strong>for</strong>
dans un script bash.
En utilisant le même exemple, commencez par créer et ouvrir un fichier de script bash à l’aide d’un éditeur de texte tel que Nano:
sudo nano rename_files.sh
Remarque : En savoir plus sur l’utilisation des scripts bash pour gérer les fichiers et les répertoires sous Linux.
Ajoutez les lignes suivantes au script:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
Dans le script ci-dessus:
- La première ligne indique au script de rechercher tous les fichiers du répertoire courant se terminant par.txt.
- La deuxième ligne utilise la commande
mv
sur chaque fichier trouvé pour remplacer le.extension txt avec.PDF. - La troisième ligne termine le segment de boucle.
Appuyez sur Ctrl + X, puis tapez Y et appuyez sur Entrée pour enregistrer les modifications apportées au script et quitter.
Utilisez la commande sh
pour exécuter le script:
sh rename_files.sh
Renommer un fichier avec la commande renommer
La commande rename
permet de renommer plusieurs fichiers ou répertoires sous Linux. Il offre plus de fonctionnalités que la commande mv
mais peut être plus difficile à utiliser car il nécessite des connaissances de base sur les expressions Perl.
Comment installer la commande rename
Sur de nombreuses distributions Linux, la commande rename
n’est pas disponible par défaut. Si la commande rename
manque à votre système, installez-la avec:
- Pour Ubuntu et Debian, utilisez
sudo apt install rename
- Pour CentOS et Fedora, utilisez
sudo yum install prename
- Pour Arch Linux, utilisez
sudo pacman -S
rename
Syntaxe et options de commande Rename
Il existe trois types d’expressions régulières Perl : match, substitute et traduire. La commande rename
utilise des expressions de substitution et de traduction pour modifier les noms de fichiers et de répertoires.
Les expressions de substitution remplacent une partie du nom de fichier par une chaîne différente. Ils utilisent la syntaxe suivante:
rename 's///'
Avec cette syntaxe, la commande renomme le fichier en remplaçant la première occurrence de l’élément filename par le remplacement. Dans la commande ci-dessus:
-
rename
: Appelle la commande renommer. -
: Fournit un argument facultatif qui modifie la façon dont la commande s’exécute.
-
s
: Indique une expression de substitution. -
: Spécifie la partie du nom de fichier que vous souhaitez remplacer.
-
: Spécifie un remplacement pour la partie du nom de fichier actuel.
-
: Définit le fichier que vous souhaitez renommer.
Une expression translate traduit une chaîne de caractères en une autre, caractère pour caractère. Ce type d’expression utilise la syntaxe suivante:
rename 'y///'
Un exemple de commande rename
utilisant une expression de traduction:
rename 'y/abc/xyz/'
Dans cet exemple, chaque caractère a du nom de fichier est remplacé par un x, chaque b par un y et chaque c par un z.
La commande rename utilise les options suivantes:
-
-a
: Remplace toutes les occurrences de l’élément filename au lieu du premier. -
-f
: Force l’écrasement des fichiers existants. -
-h
: Affiche le texte d’aide. -
-i
: Affiche une invite avant d’écraser les fichiers existants. -
-l
: Remplace la dernière occurrence de l’élément filename au lieu de la première. -
-n
: Effectue une course à sec, sans apporter de modifications permanentes. Mieux combiné avec la sortie verbeuse (-v
). -
-s
: Renomme la cible au lieu du lien symbolique. -
-v
: Affiche une version détaillée de la sortie. -
-V
: Affiche la version de la commande.
Exemples de commandes de renommage
1. Changer l’extension de fichier
Retour à notre dernier exemple, pour changer l’extension de fichier.txt à.pdf, utiliser:
rename -v 's/.txt/.pdf/' *.txt
2. Remplacer une partie d’un nom de fichier
Remplacer une partie différente du nom de fichier suit la même syntaxe. Pour renommer l’exemple1.txt, example2.txt, et example3.txt à test1.txt, test2.txt et text3.txt, utiliser:
rename -v 's/example/test/' *.txt
3. Supprimer une partie d’un nom de fichier
L’option rename
vous permet également de supprimer une partie du nom de fichier en omettant la partie de remplacement de l’expression. Par exemple, si nous voulons raccourcir l’exemple en ex:
rename -v 's/ample//' *.txt
4. Renommer des fichiers avec des noms similaires
Une autre utilisation de l’option rename
consiste à renommer des fichiers avec des noms similaires. Par exemple, si nous voulons renommer des fichiers avec exemple et échantillon dans leur nom pour tester:
rename -v 's/(ex|s)ample/test/' *.txt
5. Renommer des fichiers Caractère par caractère
La commande rename
vous permet également d’utiliser des expressions de traduction pour renommer des fichiers caractère par caractère. Par exemple, si vous souhaitez renommer plusieurs fichiers nommés fichier d’exemple en remplaçant l’espace vide par un trait de soulignement (_):
rename -v 'y/ /\_/' *.txt
6. Convertir des caractères minuscules
Pour convertir des caractères minuscules dans les noms de fichiers en caractères majuscules, utilisez:
rename -v 'y/a-z/A-Z/' *.txt
7. Convertir les caractères majuscules
L’inverse fonctionne également si nous changeons l’ordre des caractères majuscules et minuscules dans l’expression:
rename -v 'y/A-Z/a-z/' *.TXT
Remarque: Soyez prudent lorsque vous modifiez la casse des caractères, car cela modifie également l’extension du fichier.
Conclusion
Après avoir lu ce tutoriel, vous devriez pouvoir renommer des fichiers à l’aide des commandes mv
et rename
sous Linux.
En savoir plus sur l’utilisation des commandes Linux dans notre feuille de triche Commandes Linux.