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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:systeme:rename [09/01/2013 10:35] smolski [Préalable] |
doc:systeme:rename [28/05/2018 17:41] (Version actuelle) enicar [Exemples] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== rename ====== | ====== rename ====== | ||
- | (//testé// - **smolski** 09/01/2013) Le retour sur le forum est ici : [[http://debian-facile.org/viewtopic.php?id=6382 | Lien vers le forum concernant ce tuto]] \\ | + | * Objet : Commande rename |
- | //N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !// | + | * Niveau requis :{{tag>débutant avisé}} |
- | + | ||
- | * Objet : rename | + | |
- | * Niveau requis : DÉBUTANT | + | |
* Commentaires : // Modifier en série le nom des fichiers par la ligne de commande. // | * Commentaires : // Modifier en série le nom des fichiers par la ligne de commande. // | ||
- | * Débutant, à savoir : [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) |
+ | * Suivi : {{tag>à-compléter}} | ||
+ | * Création par [[user>smolski]] le 09/01/2013 | ||
+ | * Testé par [[user>smolski]] le 09/01/2013 | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=6382 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
===== Introduction ===== | ===== Introduction ===== | ||
Ligne 13: | Ligne 16: | ||
La commande rename modifie les fichiers selon la règle spécifiée comme premier argument.\\ | 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 [[commande:mv]] et [[commande:sed]], de fait elle se justifie d'utilisation lorsque nous avons __des séries de fichiers__ à renommer plutôt qu'un seul. | + | Elle apparaît dans son utilisation comme un //mix// entre [[:doc:systeme:mv]] et [[:doc:systeme:sed]], de fait elle se justifie d'utilisation lorsque nous avons __des séries de fichiers__ à renommer plutôt qu'un seul. |
===== Préalable ===== | ===== Préalable ===== | ||
- | Pour les exemples de ce tuto, créez le répertoire(([[commande:mkdir]])) //test_rename// dans votre ///home/user// ainsi : | + | Pour les exemples de ce tuto, créez le répertoire(([[:doc:systeme:mkdir]])) //test_rename// dans votre ///home/user// ainsi : |
- | <code bash> | + | <code user>mkdir ~/test_rename</code> |
- | mkdir ~/test_rename</code> | + | |
- | + | ||
- | Déplacez-vous(([[commande:cd]])) dans ce répertoire : | + | |
- | <code bash> | + | |
- | cd ~/test_rename</code> | + | |
===== Renommer un fichier ===== | ===== Renommer un fichier ===== | ||
- | Maintenant, créez(([[commande:touch]])) dans ce répertoire le fichier //nimporte// : | + | Maintenant, créez(([[:doc:systeme:touch]])) dans ce répertoire le fichier //nimporte// : |
- | <code bash> | + | <code user>touch ~/test_rename/nimporte</code> |
- | touch nimporte</code> | + | |
- | Contrôle(([[commande:ls]])) : | + | Contrôle(([[:doc:systeme:ls]])) : |
- | <code bash> | + | <code user>ls ~/test_rename/</code> |
- | ls</code> | + | |
nimporte | nimporte | ||
Renommez ce fichier //nimporte// en //test1// : | Renommez ce fichier //nimporte// en //test1// : | ||
- | <code bash> | + | <code user>rename 's/nimporte/test1/' ~/test_rename/nimporte</code> |
- | rename 's/nimporte/test1/' nimporte</code> | + | |
Résultat : | Résultat : | ||
- | <code bash> | + | <code user>ls ~/test_rename/</code> |
- | ls</code> | + | |
test1 | test1 | ||
- | Il est bien sûr préférable d'utiliser la commande mv pour faire cela en plus simple. :-) | + | == Nota : == |
+ | |||
+ | Il est bien sûr préférable d'utiliser [[doc:systeme:mv | la commande mv]] pour faire cela en plus simple. :-) | ||
===== Renommer en série ===== | ===== 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, par exemple : | + | 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 : |
- | <code bash> | + | <code user>cd ~/test_rename/</code> |
- | touch TEST2 TEsT3 test.JPG tESt.ODT</code> | + | <code user>touch TEST2 TEsT3 test.JPG tESt.ODT</code> |
Contrôle : | Contrôle : | ||
- | <code bash> | + | <code user>ls</code> |
- | ls</code> | + | |
test1 TEST2 TEsT3 test.JPG tESt.ODT | 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ères(([[commande:regexp]] en cours d'amélioration...)) comme ceci : | + | Pour mettre tous les noms de tous les fichiers ainsi que toutes leurs extentions en minuscule, utilisez des expressions régulières(([[:doc:programmation:shell:regexp]] en cours d'amélioration...)) comme ceci : |
- | <code bash> | + | <code user>rename 'y/[A-Z]/[a-z]/' *</code> |
- | rename 'y/[A-Z]/[a-z]/' *</code> | + | |
Résultat : | Résultat : | ||
- | <code bash> | + | <code user>ls</code> |
- | ls</code> | + | |
test1 test2 test3 test.jpg test.odt | test1 test2 test3 test.jpg test.odt | ||
+ | |||
+ | ===== Exemples ===== | ||
+ | |||
+ | ==== Changer les extentions de plusieurs fichiers ( .gz.1 en .gz par exemple ) ==== | ||
+ | <code user>rename 's/\.1$//' *.gz.1</code> | ||
+ | * **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 ===== | ===== Liens ===== | ||
- | * [[logiciel:gprename | gprename]] | + | * [[:doc:systeme:gprename | gprename]] |
- | * [[logiciel:pyrenamer | pyrenamer]] | + | * [[:doc:environnements:gnome:pyrenamer | pyrenamer]] |
* [[http://debian-facile.org/viewtopic.php?id=6381 | Forum debian-facile]] //Initié par// **vince06fr** ;-) | * [[http://debian-facile.org/viewtopic.php?id=6381 | Forum debian-facile]] //Initié par// **vince06fr** ;-) | ||
//À suivre...// | //À suivre...// |