Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 17-08-2013 19:44:25

MicP
Invité

demande conseil pour script "rmedir"

Je souhaiterais bénéficier de vos conseils concernant ce script : "rmedir"
Je suis très satisfait des conseils qu'on m'a déjà donné dans ce fil, mais j'aimerais vraiment en apprendre plus.
Même la traduction est sûrement à revoir : pour lire l'anglais, je me débrouille, mais pour traduire du français en anglais, je suis pas très sûr de moi.

D'avance, je vous remercie pour vos remarques et conseils.

#!/bin/bash
##########################
#
# ScriptName : rmedir (remove empty dirs)
#
##########################
#         var
##########################
scriptBaseName=$(basename $0)
##########################
#  help msg fnct locale
##########################
if [[ $LANG = fr* ]]; then                     # french LANG locale.

msg="\n \"$scriptBaseName\" \
permet de supprimer récursivement les répertoires vides contenus dans le répertoire de départ.\n\n \
Syntaxe :  $scriptBaseName OPTION [chemin du répertoire de départ]\n\n \
Note: Si aucun répertoire de départ n'est donné, le répertoire courant (\"$PWD\") sera utilisé.\n\n \
Options: \n \
-h ou --help\t\t      - Affiche ce fichier d'aide.\n \
-v ou --verbose\t     - Mode verbeux.\n \
-i ou --interactive\t - Demande de confirmation pour chaque suppression de répertoire vide.\n"


else                                           # all other languages => en.

msg="\n \"$scriptBaseName\" \
recursively removes empty folders from the start path.\n\n \

Syntax :  $scriptBaseName OPTION [START PATH]\n\n \

Note: If no start path is given, the current path (\"$PWD\") will be used.\n\n \

Options:\n \
-h ou --help\t\t      - Displays this help file.\n \
-v ou --verbose\t     - Verbose mode.\n \
-i ou --interactive\t - Ask for confirmation for each empty folder deletion.\n"

fi
##########################
if [ $# = 0 ]; then                            # No args. ?
    echo -e $msg                               # Display help message when no args.
else
    while [ "$1" ]
  do
      case $1 in
        -h | --help)
            echo -e $msg                 # Display help message.
            exit
            ;;
        -v | --verbose)
            cmd_supress="-exec rmdir -v" # Verbose mode.
            shift
            ;;
        -i | --interactive)
            cmd_supress="-ok rmdir"      # Ask for confirm before deletion.
            shift
            ;;
      esac
      shift                              # Next arg. => Start Path.
  done
    if [ "$cmd_supress" ]; then
  find $1 -depth -type d -empty $cmd_supress {} \;
    else
  find $1 -depth -type d -empty -delete
    fi
fi
##################################
#            END
##################################
 

Dernière modification par MicP (19-09-2013 23:59:33)

#2 17-08-2013 21:55:42

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : demande conseil pour script "rmedir"

Que cherches tu à savoir exactement?
C'est un script pour effacer les dossiers vides si j'ai bien compris.
En tout cas c'est rigolo comme truc, j'ai testé juste cette commande dans mon dossier home:

 find . -type d -empty | wc -l


Et il me indique que j'ai 4989dossiers vide smile Faut que je fasse le ménage je crois...

Il y a un bon lien ici en anglais sur le sujet:
http://www.thegeekstuff.com/2010/03/fin … and-files/

Hors ligne

#3 18-08-2013 05:37:17

MicP
Invité

Re : demande conseil pour script "rmedir"

Merci pour ton post.

kao a écrit :

... Que cherches tu à savoir exactement? ...


Étant donné que je ne suis pas programmeur et que je n'ai jamais eu de cours de programmation, je me demande si ce script ne pourrait pas être amélioré (syntaxe, en tête de description, etc...).
D'ailleurs, je viens d'y trouver un double-apostrophe en trop...
En résumé, je voudrais apprendre comment faire un script "propre".
_________________

kao a écrit :

... Et il me indique que j'ai 4989dossiers vide ...


Du coup, je me dis qu'il pourrait, par exemple, être intéressant d'y ajouter une option "simulate" qui afficherait la liste des dossiers vides trouvés.

kao a écrit :

... Faut que je fasse le ménage je crois...


Peut-être, mais voilà, par exemple, le résultat de la même commande dans une installation récente:

michel@deb9550:~$ find $1 -depth -type d -empty | wc -l
17
michel@deb9550:~$ find $1 -depth -type d -empty
./Téléchargements
./Modèles
./Public
./Images
./.local/share/mc/mcedit
./.config/mc/mcedit
./.config/xfce4/xfwm4
./.mozilla/extensions
./.mozilla/firefox/ofuf1kx9.default/webapps
./.mozilla/firefox/ofuf1kx9.default/mozilla-media-cache
./.gnome2/accels
./.gvfs
./Vidéos
./.cache/mc/mcedit
./.gnome2_private
./Documents
./Musique
michel@deb9550:~$


Je pense qu'il vaudrait mieux éviter de supprimer tous ces dossiers car certains sont nécessaires au bon fonctionnement du système.

Dernière modification par MicP (19-09-2013 23:58:36)

Pied de page des forums