Recherche de site Web

Renommer – Un outil de ligne de commande pour renommer plusieurs fichiers sous Linux


Nous utilisons souvent la commande « mv » pour renommer un seul fichier sous Linux. Cependant, renommer rapidement plusieurs ou groupes de fichiers rend la tâche très difficile dans un terminal.

Linux est livré avec un outil intégré très puissant appelé rename. La commande renommer est utilisée pour renommer plusieurs ou groupes de fichiers, renommer les fichiers en minuscules, renommer les fichiers en majuscules et écraser les fichiers à l'aide d'expressions Perl.

La commande « rename » fait partie du script Perl et réside sous « /usr/bin/ » sur de nombreuses distributions Linux. Vous pouvez exécuter la commande « quelle » pour connaître l'emplacement de la commande renommer.

which rename
/usr/bin/rename
La syntaxe de base de la commande Rename
rename 's/old-name/new-name/' files

La commande rename est livrée avec quelques arguments facultatifs ainsi qu'une expression Perl obligatoire qui guide la commande rename pour effectuer le travail réel.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v : affiche les noms des fichiers renommés avec succès.
  2. -n : affiche les fichiers qui auraient été renommés.
  3. -f : Forcer l'écrasement des fichiers existants.
  4. perlexpr : expression Perl.

Pour une meilleure compréhension de cet utilitaire, nous avons discuté de quelques exemples pratiques de cette commande dans l'article.

1. Un exemple de commande de renommage de base

Supposons que vous ayez un tas de fichiers avec l'extension « .html » et que vous souhaitiez renommer tous les fichiers « .html » en « .php ». d'un seul coup. Par exemple, faites d'abord un « ls -l » pour vérifier la liste des fichiers avec l'extension « .html ».

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Maintenant, vous souhaitez changer l'extension de tous ces fichiers de « .html » à « .php ». Vous pouvez utiliser la commande « renommer » suivante avec une expression Perl comme indiqué ci-dessous.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Remarque : Dans la commande ci-dessus, nous avons utilisé deux arguments.

  1. Le premier argument est une expression Perl qui remplace .html par .php.
  2. Le deuxième argument indique à la commande rename de remplacer tous les fichiers par *.php.

Vérifions si tous les fichiers sont renommés avec l'extension « .php », en faisant ls -l à l'invite.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.php
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.php
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.php
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.php

Vous pouvez maintenant voir ci-dessus que tous les fichiers html sont renommés en php.

2. Vérifiez les modifications avant d'exécuter la commande Renommer

Lorsque vous effectuez des tâches de renommage critiques ou majeures, vous pouvez toujours vérifier les modifications en exécutant la commande rename avec l'argument « -n ». Le paramètre « -n » vous indiquera exactement quels changements auraient lieu, mais les changements ne sont pas réels. Voici l'exemple de la commande ci-dessous.

ravisaive@tecmint:~$ rename -n 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

Remarque : le résultat de la commande ci-dessus affiche uniquement les modifications, mais en réalité, les modifications ne sont pas effectuées, sauf si vous exécutez la commande sans le commutateur « -n ».

3. Imprimer la sortie Renommer

Nous avons vu que la commande rename n’affichait aucune information sur les modifications apportées. Donc, si vous souhaitez obtenir les détails de la commande rename (comme nous l'avons fait en utilisant l'option « -n »), nous utilisons ici l'option « -v » pour imprimer le fichier complet. les détails de toutes les modifications effectuées avec succès par la commande rename.

ravisaive@tecmint:~$ rename -v 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

4. Convertissez toutes les minuscules en majuscules et vice-versa

Pour renommer par lots tous les fichiers avec des noms minuscules en majuscules. Par exemple, je souhaite convertir tous ces fichiers suivants de minuscules en majuscule.

Minuscule à majuscule
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Utilisez simplement la commande suivante avec l’expression Perl.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Une fois que vous avez exécuté la commande ci-dessus, vous pouvez vérifier les modifications en faisant « ls -l ».

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 ENTERTAINMENT.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 NEWS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 PHOTOS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 SPORTS.HTML

Vous pouvez voir que la commande ci-dessus a en fait renommé tous les noms de fichiers en minuscules (avec l'extension .HTML) en majuscules.

Majuscule à minuscule

De même, vous pouvez également convertir tous les caractères majuscules en minuscules à l'aide de la commande suivante.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

5. Mettre en majuscule la première lettre du nom de fichier

Pour mettre en majuscule uniquement la première lettre de chaque nom de fichier, utilisez la commande suivante.


rename 's/\b(\w)/\U$1/g' *.ext

6. Écraser les fichiers existants

Si vous souhaitez écraser de force les fichiers existants, utilisez l'option « -f » comme indiqué ci-dessous.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Si vous souhaitez en savoir plus sur la commande rename, tapez « man rename » dans le terminal.

La commande renommer est très utile si vous devez renommer plusieurs fichiers ou par lots à partir de la ligne de commande. Essayez-le et faites-moi savoir dans quelle mesure cela est utile en termes de renommage des fichiers.