Script de nettoyage


#1

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:

et de supprimer tous les fichiers repris dans cette liste:

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

un petit indice, un petit coup de main serait le bienvenu :smiley:

PS/ j’aimerais aussi integrer le tout avec zenity :smiley:


#2

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


#3

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:

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:

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… :smiley:
Mais bon, t’es pas forcément obligé de passer par un script…


#4

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


#5

merci pour vos pistes.

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

je vais chercher dans cette direction.

@+


#6

[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


#7

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 :smiley:

des remarques?


#8

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

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??


#9

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

su -c “apt-get clean”

:smiley:


#10

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

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 :smiley:

find ~/ -regex “.*mozilla.Cache.” -type f -print

et

find ~/ -regex “.*mozilla.Cache.” -type f -delete


#11

p’tit bilan :smiley:

=== 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


#12

[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:

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 … :wink:
Je suppose que les fichiers se terminant par le tilde sont des sauvegardes automatiques de tes fichier texte ?


#13

quote="jabba"
Alors relis ta command line attentivement avant de la lancer … :wink:
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 … :open_mouth:


#14

et bien les résultats ne se pas attendre!

je suis passé de 3.04G à 2.79G :open_mouth:

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

pas encore tout du moins … :confused:


#15

p’tit bilan et j’arrete pour aujourd’hui :smiley:

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”


#16

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

Et des meta caractères:

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 … :unamused:

Donc, ca vaut vraiment la peine de les potasser, ces expressions régulières, ce sont des petites bébêtes très susceptibles … :laughing:
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:

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

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


#17

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

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 :confused:


#18

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

ça marche aussi :slightly_smiling:


#19

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 :smiley:


#20

Dernière remarque:

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