Filtrer une suppression de fichier [rm] en script shell

Hello
Donc nous avons le fameux rm qui supprime tout ce qui faut le problème ce pose si on veux filtrer par utilisateur ?
Il nous faut obligatoirement l’option -r sinon les répertoire reste !

il ya donc 2 manière de faire , une moin propre mai plus rapide, l’autre le contraire.


#!/bin/sh
$p="mon repertoire"
#find "$p" -user "tnt" -print0 | xargs -0 /bin/rm -f 2>/dev/null && find "$p" -user "tnt" -print0 | xargs -0 /bin/rmdir -p 2>/dev/null

#passge des paramete founi en ligne de commande!  $1 =repertoire $2= utilisateur, n'affiche que les fichier supprimer pas les répertoire.
find "$1" -user "$2" -exec /bin/rm -vf '{}' \; 2>/dev/null && find "$1" -user "$2"  -exec  /bin/rmdir -p '{}' \; 2>/dev/null

voila :smiley:

find "$1" -user "$2" -exec /bin/rm -rvf '{}' \; ne suffit pas ?
Conseils:

  • un programme doit ne faire qu’une seule chose. laisse l’utilisateur de ta commande faire lui même le nettoyage des erreurs avec 2>/dev/null s’il a besoin, ou les recuperer s’il prefere. ton script n’a pas pour but de le faire à la base.
  • c’est le genre de commande qui se met en alias plutot que comme script.
  • il y a un fil avec pleins de trucs de shell, ici même, fait pour poster ce genre de petits rucs de shell. Mais je ne le retrouve plus :wink:

l’option (parrametre -R) de rm annulle le filtre de find !