# Script de nettoyage

**URL:** <https://www.debian-fr.org/t/script-de-nettoyage/2516>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516 "2016-02-20T12:18:13Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/1 "2016-02-20T12:18:13Z")

</div>

Hello,

je souhaiterais mettre au point un petit script de nettoyage (en sh si possible!);  
j’ai déjà réussi à faire les expressions regulieres que je voulais.

maintenant, il faudrait une commande disant de supprimer tous les fichiers se trouvant dans les repertoires suivants:

```auto

```

et de supprimer tous les fichiers repris dans cette liste:

```auto

```

et finallement un apt-get clean qui nécessite le provilege root.

un petit indice, un petit coup de main serait le bienvenu 😃

PS/ j’aimerais aussi integrer le tout avec zenity 😃

---

<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, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/2 "2016-02-20T12:18:13Z")

</div>

man find  
lis la section -exec…  
et reviens demander la syntaxe parceque tu ne la comprends pas 😆

---

<div class="post-metadata">

**Author:** ![jabba](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5e925/32.png) [@jabba](https://www.debian-fr.org/u/jabba)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/3 "2016-02-20T12:18:13Z")

</div>

Différentes maniüres de faire:

Tu peux traiter l’output de ta liste de fichier dans une boucle for:  
Ca donnerait un truc du genre:

```auto
for file in "ls -aR ~/ | grep "\/.*\..*mozilla.*Cache""
do
  rm $file
...
done
```

Voir pour la syntaxe, en particulier pour: for file in…  
Sinon, tu pourrais aussi balancer l’output de ton ls dans un fichier:

```auto

```

Et ensuite lire ce fichier ligne par ligne pour faire ce que tu veux sur chaque ligne du fichier.  
Tu peux aussi affecter l’output de ta commande ls à une variable:

`ma_variable=`ls -aR...` 
 `  
(attention, backquotes !)

Enfin, bref ce ne sont pas les possibilités qui manquent pour s’amuser… 😃  
Mais bon, t’es pas forcément obligé de passer par un script…

---

<div class="post-metadata">

**Author:** ![jabba](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5e925/32.png) [@jabba](https://www.debian-fr.org/u/jabba)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/4 "2016-02-20T12:18:14Z")

</div>

[quote=“MattOTop”]man find  
lis la section -exec…  
et reviens demander la syntaxe parceque tu ne la comprends pas 😆[/quote]  
Ouais, ouais ! demandes la syntaxe à Matt ! 😆

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/5 "2016-02-20T12:18:16Z")

</div>

merci pour vos pistes.

le “find” me parait le plus approprié à la situation.

je vais chercher dans cette direction.

@+

---

<div class="post-metadata">

**Author:** ![jabba](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5e925/32.png) [@jabba](https://www.debian-fr.org/u/jabba)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/6 "2016-02-20T12:18:16Z")

</div>

[quote=“ghostintheshell”]merci pour vos pistes.

le “find” me parait le plus approprié à la situation.

je vais chercher dans cette direction.

@+[/quote]  
Alors tu peux éventuellement t’inspirer de ce qu’il y a dans ce post:  
[http://forum.debian-fr.org/viewtopic.php?t=1660](http://forum.debian-fr.org/viewtopic.php?t=1660)

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/7 "2016-02-20T12:18:17Z")

</div>

ok les gars, c’est super!

voilà l’idée:

find ~/ -regex “.\*~$” -type f -print

=\> retourne un aperçu de tous les fichiers existants se terminant par ~

find ~/ -regex “.\*~$” -type f -delete

=\> efface tous ces fichiers

et ça roule d’enfer 😃

des remarques?

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/8 "2016-02-20T12:18:17Z")

</div>

bon, pour le deuxième, c’est un peu moins evident (j’ai du chercher un peu plus 😲 )

find ~/ -iregex “.\*mozilla._cache._” -type d -print

=\> repertorie tous les dossiers recherchés

find ~/ -iregex “.\*mozilla._cache._” -type d -print0 | xargs -0 /bin/rm -Rf

=\> supprime le contenu de tous ces dossiers MAIS AUSSI les dossiers eux-mêmes :’(

=\> et là je n’ai pas encore trouvé comment faire la même chose ç-à-d supprimer tout le contenu du dossier parent mais SANS supprimer celui-ci! une idée??

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/9 "2016-02-20T12:18:17Z")

</div>

ok et pour le troisieme point, j’ai trouvé ça:

su -c “apt-get clean”

😃

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/10 "2016-02-20T12:18:17Z")

</div>

[quote=“ghostintheshell”]bon, pour le deuxième, c’est un peu moins evident (j’ai du chercher un peu plus 😲 )

find ~/ -iregex “.\*mozilla._cache._” -type d -print

=\> repertorie tous les dossiers recherchés

find ~/ -iregex “.\*mozilla._cache._” -type d -print0 | xargs -0 /bin/rm -Rf

=\> supprime le contenu de tous ces dossiers MAIS AUSSI les dossiers eux-mêmes :’(

=\> et là je n’ai pas encore trouvé comment faire la même chose ç-à-d supprimer tout le contenu du dossier parent mais SANS supprimer celui-ci! une idée??[/quote]

ok, j’ai trouvé 20x plus simple 😃

find ~/ -regex “.\*mozilla._Cache._” -type f -print

et

find ~/ -regex “.\*mozilla._Cache._” -type f -delete

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/11 "2016-02-20T12:18:17Z")

</div>

p’tit bilan 😃

=== 1/ Mozilla Cache ===  
find ~/ -regex “.\*mozilla._Cache._” -type f -print  
find ~/ -regex “.\*mozilla._Cache._” -type f -delete

=== 2/ _~ files ===  
find ~/ -regex "._~$" -type f -print  
find ~/ -regex “.\*~$” -type f -delete

=== 3/ Wine Temp ===  
ls ~/.wine/c/windows/temp  
rm -Rf ~/.wine/c/windows/temp

=== 4/ Apt-get clean ===  
su -c “apt-get clean”

=== 5/ Gnome Thumbnails ===  
find ~/ -regex “._/.thumbnails/._” -type f -print  
find ~/ -regex “._/.thumbnails/._” -type f -delete

=== 6/ Gnome Trash ===  
find ~/ -regex “._/.Trash/._” -type f -print  
find ~/ -regex “._/.Trash/._” -type f -delete

---

<div class="post-metadata">

**Author:** ![jabba](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5e925/32.png) [@jabba](https://www.debian-fr.org/u/jabba)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/12 "2016-02-20T12:18:17Z")

</div>

[quote]=\> retourne un aperçu de tous les fichiers existants se terminant par ~  
[/quote]  
Houlà, je te conseille de faire EXTREMEMENT attention avec le signe "~’ (tilde) parce que ca désigne aussi ton $HOME (le directory personnel de l’utilisateur qui lance cette commande) !!!

Exemple:

```auto
burp:~# id
uid=0(root) gid=0(root) groupes=0(root)
burp:~# pwd
/root
burp:~# ls
dbootstrap_settings install-report.template ntpdate.txt pdumpfs-root.sh
Firmware liste_packages_installes.txt pdumpfs-etc.sh pdumpfs-var.sh
burp:~# ls ~
dbootstrap_settings install-report.template ntpdate.txt pdumpfs-root.sh
Firmware liste_packages_installes.txt pdumpfs-etc.sh pdumpfs-var.sh
burp:~# echo ~
/root
burp:~#
```

Alors relis ta command line attentivement avant de la lancer … 😉  
Je suppose que les fichiers se terminant par le tilde sont des sauvegardes automatiques de tes fichier texte ?

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/13 "2016-02-20T12:18:17Z")

</div>

quote="jabba"  
Alors relis ta command line attentivement avant de la lancer … 😉  
Je suppose que les fichiers se terminant par le tilde sont des sauvegardes automatiques de tes fichier texte ?[/quote]

oui, tout à fait.

mais en faisant:

find ~/ -regex “.\*~$” -type f -print

et même

find / -regex “.\*~$” -type f -print

mais encore

find / -regex “.\*~$” -print

ça retourne bien que les fichiers se terminant par ~ et en aucun cas le home folder ou autre fichier avec un ~ ailleurs qu’à la fin du nom

c’est ok? parce que j’ai bien failli faire dans mon … 😮

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/14 "2016-02-20T12:18:18Z")

</div>

et bien les résultats ne se pas attendre!

je suis passé de 3.04G à 2.79G 😮

et non, je n’ai pas effacé mon home folder 😆

pas encore tout du moins … 😕

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/15 "2016-02-20T12:18:18Z")

</div>

p’tit bilan et j’arrete pour aujourd’hui 😃

find -P ~/ -regex “._~$" -type f -print [-delete]  
find -P ~/ -regex ".mozilla.Cache." -type f -print [-delete]  
find -P ~/ -regex "./.thumbnails/._” -type f -print [-delete]  
find -P ~/ -regex “._/.Trash/._” -type f -print [-delete]  
find -P ~/ -regex “._/.wine/._/temp/.\*” -type f -print [-delete]

su -c “apt-get clean”

---

<div class="post-metadata">

**Author:** ![jabba](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5e925/32.png) [@jabba](https://www.debian-fr.org/u/jabba)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/16 "2016-02-20T12:18:18Z")

</div>

Je viens de parcourir la man page de grep, à propos des expressions régulières:

> [@](#):
>
> ```
> Une expression rationnelle correspondant à un caractère unique peut être suivie par l’un des
> opérateurs de répétition suivants :
> ? L’élément précédent est facultatif et peut être rencontré au plus une fois.
> * L’élément précédent peut être rencontré zéro ou plusieurs fois.
> + L’élément précédent peut être rencontré une ou plusieurs fois.
> {n} L’élément précédent doit être cherché exactement n fois.
> {n,} L’élément précédent doit être cherché n fois ou plus.
> {n,m} L’élément précédent doit être cherché au moins n fois, mais au plus m fois.
> 
> ```

Et des meta caractères:

> [@](#):
>
> ```
> Dans les expressions rationnelles simples, les méta-caractères ?, +, {, |, (, et ) perdent leur sig‐
> nification spéciale, il faut utiliser à la place leurs versions avec la contre-oblique \?, \+, \{,
> \|, \(, et \).
> 
> ```

Et ca dit en plus que le comportement de ces expressions régulières dépend en partie de la configuration linguistique de ta machine…  
Je m’en étais jamais vraiment préocuppé étant donné que tous mes serveur sont en english US … 😒

Donc, ca vaut vraiment la peine de les potasser, ces expressions régulières, ce sont des petites bébêtes très susceptibles … 😆  
Pour le reste de tes essais, rien d’autre ne m’a sauté aux yeux. ( je n’ai pas regardé dans le détail…)

Encore une remarque:

```auto

```

Le protocole HTTP n’étant pas (encore ?) en mesure de transmettre les odeurs, tu peux donc y aller gaiement ! 😆😆😆

Bon, moi aussi j’arrête pour ce soir, bonne nuit.

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/17 "2016-02-20T12:18:18Z")

</div>

ah bhen merci Jabba, ça permet de rendre complétement illisible les commandes comma ça 😃

find -P ~/ -regex “._~" -type f -print [-delete]  
find -P ~/ -regex ".mozilla./Cache._” -type f -print [-delete]  
find -P ~/ -regex “._/.thumbnails/._” -type f -print [-delete]  
find -P ~/ -regex “._/.Trash/._” -type f -print [-delete]  
find -P ~/ -regex “._/.wine/._/temp/.\*” -type f -print [-delete]

devient

find -P ~/ -regex “._(~|mozilla._/Cache._|/.thumbnails/._|/.Trash/._|/.wine/._/temp/.\*)” -type f -print [-delete]

si c’est pas de l’art ça 😕

---

<div class="post-metadata">

**Author:** ![ed](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ed/32/5886_2.png) [@ed](https://www.debian-fr.org/u/ed)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/18 "2016-02-20T12:18:19Z")

</div>

find ~/ -regex “.\*mozilla._Cache._” -type f -exec rm -f {} ;

ça marche aussi 🙂

---

<div class="post-metadata">

**Author:** ![ghostintheshell](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/a88e57/32.png) [@ghostintheshell](https://www.debian-fr.org/u/ghostintheshell)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/19 "2016-02-20T12:18:28Z")

</div>

```auto

na! ça me prend déjà la tete donc voilà ...

n'empeche merci à tous, ça m'a été et sera bien pratique à l'avenir toutes ces petites fonctions :smiley:
```

na! ça me prend déjà la tete donc voilà …

n’empeche merci à tous, ça m’a été et sera bien pratique à l’avenir toutes ces petites fonctions 😃

---

<div class="post-metadata">

**Author:** ![jabba](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5e925/32.png) [@jabba](https://www.debian-fr.org/u/jabba)\
**Post date:** [Février 20, 2016, 12:18 UTC](https://www.debian-fr.org/t/script-de-nettoyage/2516/20 "2016-02-20T12:18:47Z")

</div>

Dernière remarque:

```auto

```

Pour trouver la lessive, tu as aussi utilisé “find” ?  
😆

[Page suivante](https://www.debian-fr.org/t/script-de-nettoyage/2516.md?page=2)
