Ceci est une ancienne révision du document !
Mes Nautilus-scripts
Prérequis
- Lisez la documentation Les scripts pour Nautilus
- Lisez la documentation NautilusScriptsHowto
- Lisez la documentation Bash : Guide pour debutant et notamment sa section 10.3.3
Un script pour renommer en masse avec pyrenamer
- Installez le paquet 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
#!/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"
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