Bash : renommer une série de répertoires

Supposons que vous ayez une série de répertoires que vous souhaitez renommer avec un préfixe commun auquel s'ajoute un chiffre à incrémenter, du genre « dossier 1 », « dossier 2 », etc. Voici un script bash tout simple qui permet de le faire.

Ce script, « renommer.sh », est à utiliser avec Nautilus, l'explorateur de documents de Gnome, en le plaçant dans le répertoire .gnome2/nautilus-scripts. Puis, dans Nautilus :

  • Sélectionnez les répertoires à renommer puis clic droit pour lancer la commande scripts->renommer.sh
  • Dans le champ de la fenêtre qui apparaît, entrez le préfixe à utiliser puis validez.

Les répertoires sélectionnés seront ainsi renommés « préfixe-01 », « préfixe-02 », « préfixe-03 », etc.

#! /bin/bash
# Fonction : Renommer une liste de répertoires
# sélectionnés dans Nautilus
# Liste des répertoires sélectionnés
rep=${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}
# Entrer du préfixe
prefix=`zenity --title "Renommer répertoires" --entry --text "Préfixe" `
# si abandon, arrêt du script
if [[ "$?" != 0 ]]; then
    zenity --title "Renommer répertoires" --info --text "Renommer abandonné"
    exit
fi
# sinon, renommer les répertoires
val=0
for i in ${rep}
    do
    if [[ -d $i ]]; then
        val=$(( val + 1 ))
        # ajouter un 0 si nécessaire
        if (( ${#val} < 2 )); then
            val="0"$val
        fi
        mv $i ${prefix}"-"$val
    fi
done
zenity --title "Renommer répertoires" --info --text "Renommage effectué"
1. Script renommer.sh

Le script peut être facilement modifié en fonction des besoins : utiliser un suffixe au lieu d'un préfixe, renommer les répertoires juste numériquement, ajouter une barre de progression avec zenity, etc.

Comme toujours, si vous ne comprenez pas ne serait-ce qu'une partie du script ci-dessus, ne tentez pas le diable ; je ne voudrais pas être responsable d'une éventuelle perte de vos données.