Renommer plusieurs fichiers et répertoires avec le mv
command peut être un processus fastidieux car il implique l'écriture de commandes complexes avec des tubes, des boucles, etc.
C'est là que le rename
la commande est pratique. Il renomme les fichiers donnés en remplaçant l'expression de recherche dans leur nom par le remplacement spécifié.
Dans ce tutoriel, nous allons vous expliquer comment utiliser le rename
commande pour renommer les fichiers par lots.
Installation de rename
#
Il existe deux versions du rename
commande avec une syntaxe et des fonctionnalités différentes. Nous utiliserons la version Perl du rename
commande.
Si cette version n'est pas installée sur votre système, utilisez le gestionnaire de packages de votre distribution Linux pour l'installer :
-
Ubuntu et Debian
sudo apt update
sudo apt install rename
-
CentOS et Fedora
sudo yum install prename
-
Arch Linux
yay perl-rename
Utilisation de rename
#
Voici la syntaxe générale pour le rename
commande :
rename [OPTIONS] perlexpr files
Le rename
La commande est essentiellement un script Perl. Il renommera les files
donnés selon le perlexpr
spécifié expression régulière. Vous pouvez en savoir plus sur les expressions régulières Perl ici.
Par exemple, la commande suivante changera l'extension de tous les .css
fichiers vers .scss
:
rename 's/.css/.scss/' *.css
Expliquons la commande plus en détail :
s/search_pattern/replacement/
- L'opérateur de substitution..css
- Le modèle de recherche. C'est le premier argument de l'opérateur de substitution. Lerename
recherchera ce modèle dans le nom de fichier donné et s'il le trouve, il le remplacera par l'argument de remplacement..scss
- Le remplacement. Le deuxième argument de l'opérateur de substitution.*.css
- Tous les fichiers avec l'extension ".css". Caractère générique (*
) est un symbole utilisé pour représenter zéro, un ou plusieurs caractères.
Avant d'exécuter la commande proprement dite et de renommer les fichiers et les répertoires, il est toujours judicieux d'utiliser le -n
option qui effectuera un "essai à blanc" et vous montrera quels fichiers seront renommés :
rename -n 's/.css/.scss/' *.css
La sortie ressemblera à ceci :
rename(file-0.css, file-0.scss)
rename(file-1.css, file-1.scss)
rename(file-2.css, file-2.scss)
rename(file-3.css, file-3.scss)
rename(file-4.css, file-4.scss)
Par défaut, le rename
La commande n'écrase pas les fichiers existants. Utilisez le -f
option qui indique rename
pour écraser les fichiers existants :
rename -f 's/.css/.scss/' *.css
Si vous voulez rename
pour imprimer les noms des fichiers renommés avec succès, utilisez le -v
option (verbeux) :
rename -v 's/.css/.scss/' *.css
file-0.css renamed as file-0.scss
file-1.css renamed as file-1.scss
file-2.css renamed as file-2.scss
file-3.css renamed as file-3.scss
file-4.css renamed as file-4.scss
rename
Exemples #
Vous trouverez ci-dessous quelques exemples courants d'utilisation de la commande de renommage :
Remplacer les espaces dans les noms de fichiers par des traits de soulignement #
rename 'y/ /_/' *
Convertir les noms de fichiers en minuscules #
rename 'y/A-Z/a-z/' *
Convertir les noms de fichiers en majuscules #
rename 'y/a-z/A-Z/' *
Supprimer .bak
à partir des noms de fichiers #
rename 's/\.bak$//' *.bak
Renommer .jpeg
et .JPG
noms de fichiers en .jpg
#
rename 's/\.jpe?g$/.jpg/i' *
Conclusion #
Le rename
La commande vous permet de renommer plusieurs fichiers à la fois, en utilisant des expressions régulières Perl.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.