Script Nautilus renommer des fichiers
Dans l’environnement Linunx/Gnome, il y a une fonction intéressante, ce
sont les scripts Nautilus. Ils apparaisent dans le menu du “clic droit”
et permettent de réaliser une fonction programmée sur un ou plusieurs
fichiers.
Ces scripts sont localisés dans le répetoire
~/.gnome2/nautilus-scripts
, certains utilisent l’interface graphique
zenity.
Ce script a évolué, il faut regarder la nouvelle édition qui garde l’ordre des fichiers
Le script Renomme_fichier.bash
J’ai créé ce script pour résoudre un problème simple : renommer facilement le nom des photos issuent de mon appareil numérique.
Les fichiers issuent d’un appareil photo numériques ont un nom sous
forme d’un numéro. Pour mon Olympus, il est du type p1010xxx.jpg
ou
xxx est le N° de la photos dans la série de prise de vues.
Au bout d’un certain temps, vous vous retrouvez avec plusieurs fichiers
portant le même nom et je trouve cela ch..t même si mes photos sont
classées par date et évènements.
Fonctionnement du script
Le script peut être utilisé via le menu des scripts Nautilus ou en mode commande. Vous devez lui passer en paramètre la liste des fichiers à renommer.
Les étapes du script :
- Controle des paramètres : il faut fournir au moins 1 fichier à renommer. Si ce paramètre est omis, il y a sortie avec un code d’erreur 1
- Nouveau nom du fichier : une fenêtre Zenity permet de saisir la
racine du nouveau nom du fichier. Le nom du fichier sera composé de
la racine fournie suivie d’un numéro.
Si vous souhaitez renommer 10 fichiers avec comme racine de nom bonjour, ils seront renommés en bonjour_1 à bonjour_10 - Controle de la racine du nom : si vous validez la boite de saisie du nouveau nom en laissant une chaine vide, il y a sortie avec le code d’erreur 1. Si vous sélectionnez le bouton Cancel, il y a sortie sans erreur.
- Renommage des fichiers : il s’agit d’une boucle qui renommer les
fichiers en gardant le type original. Un fichier
ancien-nom.jpg
sera donc renommé ennouveau-nom_1.jpg
.
Contenu du script renomme_fic.bash
:
#!/bin/bash
# Author : http://www.saintcarre.fr/
# Date : 24/11/2007
#depends: imagemagick, zenity
#
#version 0.1
#Objet : renomme les fichiers sélectionnés en gardant l'extension
#
#=========================================
# Definition des messages
title="Renommage de fichiers JPG"
err1="Il faut sélectionner un ou plusieurs fichiers."
chaine="Les fichiers seront renommés avec la racine spécifiée suivi d'un N° de 1 à $NbFic."
entree="Nouvau nom"
err2="Vous n'avez pas saisi de nom de fichier."
msg_renomm="Renammage en cours ..."
#=========================================
curdir=`pwd`
#test if a file has been selected
if [ $# -eq 0 ]; then
zenity --error --title="Error" --text="$err1"
exit 1
fi
#Choix du nouveau nom des fichiers
NouvNom=`zenity --entry --title "$title" --text "$chaine" --entry-text "$entree" `
#if $? != 0, user click on cancel button, so exit
if [ "$?" != 0 ] ; then
exit
fi
#Verification du nom du fichier
if [ ! "$NouvNom" ]; then
zenity --error --title="$title" --text="$err2"
exit 1
fi
nbfiles=$#
#=========================================
#echo "Renommage des fcihiers, nombre de fichiers a traiter : $#"
num=1
(while [ $# -gt 0 ]; do
type=`echo $1 | cut -f2 -d"."`
let "compteur += 1"
num=$(($num+1))
#echo "Renomage de $1 en $NouvNom-$num.$type"
mv $1 $NouvNom-$num.$type
let "progress = compteur*100/nbfiles"
echo $progress
shift
done
) | zenity --progress --auto-close --title="$title" --text="$msg_renomm" --percentage=0
exit
Installation du script
Vous devez créer un fichier dans le répertoire
~/.gnome2/nautilus-scripts
et l’ouvrir avec votre éditeur préféré (vi,
nano, emacs …). Copier le contenu du script fournit au dessus dans le
fichier et sauvegarder ce fichier.
Pour que ce fichier soit exécutable, il faut modifier les droits :
- ouvrez un terminal
- allez dans le répertoire du script
cd ~/.gnome2/nautilus-scripts
- modifiez les droits sur fichier
chmod 744 renomme_fic.bash
pour qu’il soit exécutable par son propriétaire et lisible par tous,chmod 766 renomme_fic.bash
pour qu’il soit exécutable et lisible par tous.
A faire
Ce script n’est pas parfait, voici quelques idées :
- choisir le N° du premier fichier renommé
- renommer les fichiers dans les sous répertoires