Différences
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:j5012:brouillons:mes_nautilus_scripts [Le 06/01/2017, 21:48] J5012 [Un script pour renommer en masse avec pyrenamer] |
utilisateurs:j5012:brouillons:mes_nautilus_scripts [Le 28/04/2018, 11:32] (Version actuelle) |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Mes Nautilus-scripts ====== | ||
| + | |||
| + | ===== Prérequis ===== | ||
| + | |||
| + | * Lisez la documentation [[:nautilus_scripts|Les scripts pour Nautilus]] | ||
| + | * Lisez la documentation [[https://help.ubuntu.com/community/NautilusScriptsHowto|NautilusScriptsHowto]] | ||
| + | * Lisez la documentation [[http://www.tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html|Bash : Guide pour debutant]] et notamment sa section 10.3.3 | ||
| + | |||
| + | ===== Un script pour renommer en masse avec pyrenamer ===== | ||
| + | |||
| + | * Installez le paquet **[[apt>pyrenamer]]** | ||
| + | * Allez dans le dossier des scripts nautilus | ||
| + | * Créez-y le fichier //pyrenamit// ou //pyrenamall//, au choix | ||
| + | * Rendez le exécutable, pour ne pas avoir à le faire après | ||
| + | * Éditez-le et copiez-collez-y le code suivant | ||
| + | |||
| + | <code> | ||
| + | #!/bin/bash | ||
| + | #Lance l'application Pyrenamer | ||
| + | # dans le dossier selectionné | ||
| + | # ou dans le dossier du fichier selectionné. | ||
| + | # | ||
| + | # Nautilus "Renommer en masse" Script # | ||
| + | # | ||
| + | # Si l'argument est vide : | ||
| + | # - le clic droit ne sélectionne ni dossier ni fichier | ||
| + | # - comportement plus valide avec xenial | ||
| + | # - pyrenamer s'ouvre par défaut dans $HOME | ||
| + | # - on fait ouvrir pyrenamer dans le dossier courant du clic "vide" | ||
| + | # | ||
| + | if [ "$1" = "" ];then | ||
| + | wdir=${NAUTILUS_SCRIPT_CURRENT_URI#file://} | ||
| + | else | ||
| + | # | ||
| + | # L'argument n'est pas vide : | ||
| + | # - le clic droit sélectione un dossier ou un fichier | ||
| + | # - la variable filetype enregistre le type de l'argument | ||
| + | # - avec seulement la note "directory" ou "file" | ||
| + | # | ||
| + | filetype=$(file "$1") | ||
| + | filetype=${filetype##*: } | ||
| + | # | ||
| + | # La variable filetype enregistre le type "directory" : | ||
| + | # - le chemin de l'argument sélectionné est reconstitué | ||
| + | # - avec la localisation complète et courante du dossier sélectionné | ||
| + | # - et de son nom, débarrassé de la notation shell file:// | ||
| + | # | ||
| + | if [ "$filetype" = "directory" ];then | ||
| + | wdir="${NAUTILUS_SCRIPT_CURRENT_URI#file://}/$1" | ||
| + | else | ||
| + | # | ||
| + | # La variable filetype enregistre le type "file" : | ||
| + | # - le chemin de l'argument sélectionné est reconstitué | ||
| + | # - avec seulement la localisation complète et courante du fichier sélectiionné | ||
| + | # - débarrassé de la notation shell file:// | ||
| + | # | ||
| + | wdir=${NAUTILUS_SCRIPT_CURRENT_URI#file://} | ||
| + | fi | ||
| + | fi | ||
| + | # | ||
| + | # Pour tout contenu de localisation complète | ||
| + | # pour le dossier de travail ou d'exécution (wdir = working directory) | ||
| + | # la variable $wdir est débarrassée de la notation shell du symbole "espace" | ||
| + | # tous les échappements shell %20 deviennent des espaces " " | ||
| + | # | ||
| + | wdir=${wdir//%20/ } | ||
| + | # | ||
| + | # Le contenu de la variable $wdir | ||
| + | # avec ses espaces et ses caractères accentués | ||
| + | # est protégé par des guillemets | ||
| + | # | ||
| + | pyrenamer "$wdir" | ||
| + | </code> | ||
| + | |||
| + | ==== Explications de code ==== | ||
| + | |||
| + | * le script vérifie le chemin d'execution du script pyrenamit | ||
| + | * le chemin est vide, le script lui assigne le dossier courant d'execution ... | ||
| + | * le chemin n'est pas vide, le script vérifie si c'est un fichier ou un dossier | ||
| + | * si c'est un dossier, le script lancera pyrenamer avec le nom du dossier selectionné et son chemin complet | ||
| + | * si c'est un fichier, le script lancera pyrenamer avec le dossier contenant le fichier selectionné | ||
| + | * le script prend en compte les espaces et les caracteres accentués | ||
| + | |||
| + | __Lire les commentaires du code__ | ||