#!/bin/bash # delpollu version 0.999 # # 12 juin 2006 : création # Samuel Krieg skrieg@wng.ch # # delpollu supprime les fichiers foireux créés par les explorateurs # des différents systèmes d'exploitations. Finder, Explorer.exe # et Nautilus sont gérés. # # # si pas d'arguments, on sort # sort si pas d'arguments if [ -z $1 ]; then echo "Pas d'argument ..." echo "<`basename $0` --help> pour plus d'infos" exit 1 fi VERSION="0.999" LAST_MODIF="12 juin 2006" FIND=$(which find) VERBOSE=0 TEST=0 PRINT="" CHEMIN="" # affiche la version et quitte function affiche_version { echo "delpollu.sh Version $VERSION" echo "Derniere modification : $LAST_MODIF" } # affiche l'aide et quitte function affiche_aide { echo "delpollu.sh version $VERSION" echo "usage : delpollu.sh [-h] [-v] [-V] [-t] [chemin]" echo "affichage de l'aide" } # prise en charge des arguments et # définition des variables while [ "$1" ]; do case $1 in -h | --help) affiche_aide exit 0 ;; -v) VERBOSE=1 ;; -V) affiche_version exit 0 ;; -t) TEST=1 ;; *) if [ -n "$CHEMIN" ]; then #déjà initialisée echo "Un seul chemin svp $CHEMIN est deja utilise." echo "$1 Ne peut pas etre aussi le chemin." exit 1 fi CHEMIN=$1 ;; esac shift done # test de la validité des arguments if [ ! -d "$CHEMIN" ] && [ ! -L $CHEMIN ] ; then echo "Le répertoire $CHEMIN n'existe pas." exit 1 fi # verbose PRINT='-fprint /dev/null' if [ $VERBOSE == 1 ]; then PRINT="-print" fi EXEC="" if [ $TEST -eq 0 ]; then # hop c'est un tableau ! Magik ! c.f. http://wooledge.org/mywiki/BashFaq#faq50 # test # EXEC=(-exec echo A+ : "{}" res \;); # for real EXEC=(-exec rm -rf {} \;); fi # execution de la commande $FIND $CHEMIN \( \ -name ".DS_Store" -or \ -name ".Trashes" -or \ -name "._*" -or \ -name ".Trash-*" -or \ -name ".TemporaryItems" -or \ -name "Thumbs.db" -or \ -name "_notes" \ \) $PRINT ${EXEC[@]}