La commande rename de Linux est une commande puissante pour renommer des fichiers sur Linux.
Elle permet de renommer très facilement des fichiers par lots grâce aux expressions régulières.
C'est la commande à utiliser lorsque vous souhaitez changer les extensions de plusieurs fichiers, passer des lettres minuscules en majuscules des noms de fichiers, etc.
Dans ce tutoriel, je vous montre comment utiliser la commande rename sur Linux avec de multiples exemples.
Comment utiliser la commande rename sur Linux
La commande rename n'est pas une commande de base, elle n'est donc probablement pas incluse par défaut dans votre distribution Linux.
Ainsi, si Linux vous indique que la commande est introuvable, vous devez l'installer :
-bash: rename: command not found
Pour cela, utilisez l'utilitaire de paquet comme APT ou Yum/dnf :
- Pour Ubuntu, Mint ou Debian, use
sudo apt install rename
- Avec CentOS and Fedora, use
sudo yum install prename
- Enfin du côté de Arch Linux, use
sudo pacman -S
rename
La commande rename est utilisée pour renommer plusieurs fichiers ou répertoires de Linux. Il offre plus de fonctionnalités que la commande MV, mais peut être plus difficile à utiliser car elle nécessite une connaissance de base des expressions régulières (de type PERL).
Voici la syntaxe :
rename [options] 's/[élément du fichier]/[remplacement]/' [fichier]
rename
: Invoque la commande renommée[options]
: Fournit un argument facultatif qui modifie la manière dont la commande exécutes
: Indique une expression de substitution[
élément du fichier]
: Spécifie la partie du nom de fichier que vous souhaitez remplacer[remplacement]
: Spécifie un remplacement de la partie du nom de fichier actuel[fichier]
: Définit le fichier que vous souhaitez renommer. On peut utiliser les caractères joker pour cible un lot de fichiers
Enfin ce tableau récapitule la plupart des options disponibles.
Attention les options diffèrent d'une distribution Linux à l'autre.
OPTIONS | DESCRIPTION |
-a | Remplace toutes les occurrences de l'élément de nom de fichier au lieu de la première |
-d | Ne renommez pas un répertoire : seulement renommer les fichiers d'un répertoire |
-f | Force un écrasement de fichiers existants |
-i | Affiche une invite avant d'écraser les fichiers existants |
-l | Remplace la dernière occurrence de l'élément de nom de fichier au lieu du premier |
-n | Effectue une course à sec, ne faisant aucune modification permanente. Mieux combiné avec la sortie verbose (-v) |
-s | Renomme la cible au lieu du lien symbolique Non disponible sur Debian mais disponible sur Ubuntu. |
La commande rename Linux : utilisation et exemples
Comment changer les extensions de fichiers
Dans ce premier exemple, nous allons renommer toutes les extensions .txt en .pdf.
Pour cela, on utilise l'expressions régulières suivantes 's/.txt/.pdf/' et on vise tous les fichiers textes avec *.txt :
rename -v 's/.txt/.pdf/' *.txt
Dans cet arborescence nous avons plusieurs fichiers PDF.
Ici nous allons renommer l'extension pdf en txt que pour les fichiers qui commencent par exemple.
Ainsi le fichier demo.pdf n'est pas visé.
rename -v 's/.pdf/.txt/' exemple*.pdf
Notez que l'on est pas obligé d'utiliser la syntaxe regex.
Ainsi pour renommer les extensions d'un lot de fichiers, vous pouvez aussi utiliser cet exemple :
Comment remplacer une partie du nom d'un fichier
Le remplacement d'une partie différente du nom de fichier suit la même syntaxe.
Pour renommer exemple exemple1.txt, exemple2.txt et exemple3.txt to test1.txt, test2.txt et text3.txt, utilisez:
rename -v 's/exemple/test/' *.txt
Comment supprimer une partie du nom d'un 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/emple//' *.txt
Une autre utilisation pour l'option de rename est de renommer des fichiers avec des noms similaires. Par exemple, si nous voulons renommer des fichiers avec l'exemple et l'échantillon dans leur nom pour tester:
rename -v 's/(ex|s)ample/test/' *.txt
Comment remplacer les espaces dans des noms de fichiers par tirets
Pour utiliser la commande rename afin de remplacer l'espace par un tiret dans le nom de fichier.
Vous pouvez par exemple utiliser cette syntaxe :
rename 'y/ /-/' *.txt
Notez bien l'utilisation du modifieur y/ à la place de s/.
En regex PERL, le modifieur y/ remplace les occurrences de chaque caractère.
En utilisant s/, cela ne va pas remplacer que la première occurence.
rename 's/ /-/' *.txt
Comment convertir des noms de fichiers minuscules en majuscules
Pour convertir des caractères minuscules dans des noms de fichiers en caractères majuscules, utilisez :
rename 'y/a-z/A-Z/' *
Comment convertir des noms de fichiers majuscules en minuscules
Si vous avez des fichiers avec des espaces et que vous souhaitez renommer les fichiers pour remplacer l'espace par un tiret :
rename 'y/A-Z/a-z/' *
Comment gérer l'écrasement de fichiers avec rename
Par défaut, la commande de renommée n'effectue pas l'opération si elle implique de remplacer un fichier existant. Cependant, vous pouvez forcer l'outil à écraser à l'aide de l'option -f.
Par exemple, la commande suivante :
rename 's/txt/pdf/' exemple-1.*
produit la sortie suivante :
exemple-1.txt not renamed: exemple-1.pdf already exists
Mais quand on utilise la commande avec -f :
rename -f 's/txt/pdf/' exemple-1.*
L'opération se terminé sans erreur et exemple-1.pdf est écrasé.
Déplacer les fichiers entre répertoires avec rename
Vous pouvez également utiliser Renommer pour déplacer des fichiers entre les répertoires, éventuellement en même temps que de faire d'autres modifications (mais voir --filename).
rename 'y/A-Z/a-z/;s/^/nouveau-repertoire\//' *.*
Liens
- La commande ls Linux : utilisation et exemples
- Commande find Linux : Exemples d'utilisation pour rechercher des fichiers
- Copier ou déplacer un fichier sur Linux
- Comment renommer un fichier sur Linux
- La commande cp de Linux : Exemples d'utilisation
- Copier des fichiers ou répertoire dans un terminal sur Linux
- La commande mv : déplacer des fichiers ou répertoires
- La commande rename Linux : utilisation et exemples
- Commande rm Linux : Utilisations et exemples
- Comment supprimer un fichier ou répertoire sur Linux
- rsync : synchroniser, copier des fichiers à distance ou locaux
- Commande locate : utilisations et exemples
- La commande cd Linux : utilisation et exemple
- Command find : utilisations et exemples pour rechercher des fichiers
- Comment chercher un fichier sur Linux
L’article La commande rename Linux : utilisation et exemples est apparu en premier sur malekal.com.
0 Commentaires