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 | ||
utilisateurs:smolski:tutos:script-renames [18/09/2020 16:19] smolski [Scripts find + rename] |
utilisateurs:smolski:tutos:script-renames [04/10/2020 07:47] (Version actuelle) smolski [Scripts - renommer fichiers et répertoires] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Script rename ====== | + | ====== Scripts - renommer fichiers et répertoires ====== |
- | * Objet : Des scripts pour renommer des séries de répertoires | + | * Objet : Scripts pour renommer des séries de répertoires et fichiers |
* Niveau requis : {{tag>débutant avisé}} | * Niveau requis : {{tag>débutant avisé}} | ||
- | * Commentaires : //À l'occasion d'une remise à plat de ma cinémathèque, je me trouve à devoir homogénéïser le nom des fiechiers et répetoires des films présents sur divers disques. // | + | * Commentaires : //À l'occasion d'une remise à plat de ma cinémathèque, je me trouve à devoir homogénéiser le nom des fichiers et répertoires des films présents sur divers disques durs. // |
* Débutant, à savoir : [[:doc:systeme:commandes: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à !.]] :-) | ||
+ | * Lien vers le forum : [[https://debian-facile.org/viewtopic.php?pid=343422#p343422]] | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | En cas de modification des noms de fichiers et répertoires : | + | <note warning> |
+ | - Il est dangereux d'utiliser des scripts dont on ne connaît pas la signification ni la provenance afin de se renseigner pour leur usage perso. | ||
+ | - Il est dangereux d'utiliser des scripts sans les tester sur une petite sav en exemple. | ||
+ | - Il est préférable d'avoir des sauvegardes complètes de ce que l'on va renommer, quitte après de s'en débarrasser une fois le travail fait et vérifié. | ||
+ | </note> | ||
- | <note warning>Il est dangereux d'utiliser des scripts dont on ne connaît pas la provenance. | + | ===== Scripts find + rename ===== |
- | Il est dangereux d'utiliser des scripts sans les tester sur une petite sav. | + | |
- | Il est préférable d'avoir des sav abondantes de ce que l'on va renommer, quitte après de s'en débarrasser une fois le travail fait et vérifié.</note> | + | |
- | ===== Installation ===== | + | Exemple d'utilisation de find et rename pour renommer en masse des fichiers et des dossiers. |
- | On installe le paquet rename : | + | ==== Installation ==== |
+ | |||
+ | On installe les paquets rename et find : | ||
D'abord mettre à jour ses paquets, voir [[doc:systeme:apt|les outils apt pour plus d'explications]] | D'abord mettre à jour ses paquets, voir [[doc:systeme:apt|les outils apt pour plus d'explications]] | ||
- | <code root>apt update 11 apt full-upgrade</code> | + | <code root>apt update && apt full-upgrade</code> |
- | Et installer le bouzin : | + | Et installer les 2 paquets : |
- | <code root>apt install rename</code> | + | <code root>apt install rename find</code> |
- | ===== Scripts find + rename ===== | + | <note important>Documentation find : [[doc:systeme:find|dans le tuto find]].</note> |
+ | |||
+ | ==== Exécution ==== | ||
+ | |||
+ | //(Ce titre n'est pas un vain mot, ici...)// :-D | ||
+ | |||
+ | Suite à un repositionnement de plusieurs listes de films il me faut renommer les titres en supprimant tous les aspects purement littéraux qui falsifieraient le résultat des commandes que j'utilise pour la gestion informatique de l'ensemble de la cinémathèque. | ||
+ | |||
+ | <note info>Pour l'exemple, on considérera que toute la cinémathèque est stockée dans le dossier ''/mnt/bla/'', et l'on veut renommer tous les dossiers, sous-dossiers, et leurs fichiers avec différentes contraintes.</note> | ||
+ | |||
+ | === Remplacer les espaces et apostrophes === | ||
+ | |||
+ | Pour remplacer les espaces et les apostrophes par, respectivement, des ''_'' et des ''-'' dans les noms de fichiers/dossiers. | ||
+ | |||
+ | <code user>find /mnt/bla/ -depth -execdir rename "y/ '/_-/" "{}" \;</code> | ||
+ | |||
+ | === Supprimer les parenthèses === | ||
+ | |||
+ | Pour supprimer les parenthèses dans les noms de fichiers/dossiers. | ||
- | Documentation find : [[doc:systeme:find|dans le tuto find]]. | + | <code user>find /mnt/bla/ -depth -execdir rename "s/[\)\(]//g" "{}" \;</code> |
- | Mettre une majuscule à la première lettre de tous les répertoires et sous-répertoire d'un répertoire nommé bla : | + | === Mettre en majuscule la première lettre === |
- | <code user>find -depth -execdir rename "y/\U\$1/" "{}" \;</code> | + | |
+ | Pour mettre la première lettre en majuscule dans les noms de fichiers/dossiers. | ||
+ | <code user>find /mnt/bla/ -depth -execdir rename "s/^\.\/(.)/.\/\U\$1/" "{}" \;</code> | ||
+ | === Tout d'un coup === | ||
+ | Pour enchaîner toutes les substitutions en une seule commande : | ||
+ | <code user>find /mnt/bla/ -depth -execdir rename "y/ '/_-/;s/[\)\(]//g;s/^\.\/(.)/.\/\U\$1/" "{}" \;</code> | ||
- | find -depth -execdir rename "y/ '/_-/;s/[\)\(]//g;s/^\.\/(.)/.\/\U\$1/" "{}" \; |