# Filtrer une suppression de fichier \[rm\] en script shell

**URL:** <https://www.debian-fr.org/t/filtrer-une-suppression-de-fichier-rm-en-script-shell/6851>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 3:40 UTC](https://www.debian-fr.org/t/filtrer-une-suppression-de-fichier-rm-en-script-shell/6851 "2016-02-20T15:40:49Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 3:40 UTC](https://www.debian-fr.org/t/filtrer-une-suppression-de-fichier-rm-en-script-shell/6851/1 "2016-02-20T15:40:49Z")

</div>

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.

```auto

#!/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 😃

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 3:40 UTC](https://www.debian-fr.org/t/filtrer-une-suppression-de-fichier-rm-en-script-shell/6851/2 "2016-02-20T15:40:49Z")

</div>

`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 😉

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 3:40 UTC](https://www.debian-fr.org/t/filtrer-une-suppression-de-fichier-rm-en-script-shell/6851/3 "2016-02-20T15:40:50Z")

</div>

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