logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

rename

Introduction

La commande rename modifie les fichiers selon la règle spécifiée comme premier argument.
Elle apparaît dans son utilisation comme un mix entre mv et sed, de fait elle se justifie d'utilisation lorsque nous avons des séries de fichiers à renommer plutôt qu'un seul.

Préalable

Pour les exemples de ce tuto, créez le répertoire2) test_rename dans votre /home/user ainsi :

mkdir ~/test_rename

Renommer un fichier

Maintenant, créez3) dans ce répertoire le fichier nimporte :

touch ~/test_rename/nimporte

Contrôle4) :

ls ~/test_rename/
 nimporte

Renommez ce fichier nimporte en test1 :

rename 's/nimporte/test1/' ~/test_rename/nimporte

Résultat :

ls ~/test_rename/
 test1
Nota :

Il est bien sûr préférable d'utiliser la commande mv pour faire cela en plus simple. :-)

Renommer en série

Maintenant créons dans le même répertoire test_rename une série de fichiers contenant des majuscules dans leurs noms et leurs extentions :

cd ~/test_rename/
touch TEST2 TEsT3 test.JPG tESt.ODT

Contrôle :

ls
 test1 TEST2  TEsT3  test.JPG  tESt.ODT

Pour mettre tous les noms de tous les fichiers ainsi que toutes leurs extentions en minuscule, utilisez des expressions régulières5) comme ceci :

rename 'y/[A-Z]/[a-z]/' *

Résultat :

ls
 test1 test2  test3  test.jpg  test.odt
 

Exemples

Changer les extentions de plusieurs fichiers ( .gz.1 en .gz par exemple )

rename 's/\.1$//' *.gz.1
  • s indique l'action de substitution. Cette action est constitué de deux parties. Un motif à faire correspondre et une chaîne de substitution (ou remplacement) pour ce motif. Cela veut dire qu'on va substituer le motif par la chaîne de remplacement. En résumé l'opérateur de substitution est constitué comme suit : s/MOTIF/REMPLACEMENT/.
  • \.1$ Est une regexp qui indique le texte que l'on veut modifier dans laquelle :
    • \.1 précise le texte à modifier .1 ( on utilise le \ devant le . le \. est important car dans le langage des regexp « . » désigne n'importe quel caractère.
    • $ précise que le texte ( ici .1 ) est situé a la fin ( pour éviter de changer des 1 qui seraient au milieu du mot et sans rapport avec le .gz1 )
  • *.gz.1 Dit que l'on applique la commande rename sur tous les fichiers ( * ) mais finissant par .gz.1

Liens

À suivre…

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
5)
regexp en cours d'amélioration…
doc/systeme/rename.txt · Dernière modification: 28/05/2018 17:41 par enicar

Pied de page des forums

Propulsé par FluxBB