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 updatesudo 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. Lerenamerecherchera 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.