#1 Le 11/09/2009, à 11:20
- Elève linuxien
Erreur sur commande find rm [RESOLU]
Bonjour à tous,
Voilà je veux faire un cron pour automatiser des sous-dossiers qui auraient plus de sept jour dans un dossier. j'ai mis testé la commande suivante :
find /dossier/ -type d -a -mtime +7 -exec rm -r {} \;
Le problème, si c'en est un, c'est que la commande me supprime bien les sous-dossiers et leurs contenus mais cela m'écris :
# find : "/dossier/sous-dossier/" : Aucun fichier ou dossier de ce type
Lorsque je fais un ls -l de mon dossier le sous-dossier à bien disparu.
Y a t'il une coquille dans ma commande et comment faire pour qu'il n'apparaisse plus cette "erreur" ?
Merci à vous pour vos réponses.
PS : pour tester sur un dossier que je venais de créer sans attendre 7 jours pour voir si ça marche j'ai modifié la date du dossier avec la commande suivante :
# touch -t 0512031113 mon_fichier
de sorte que mon dossier apparaisse avec la date du 03.12.2005 à 11h13
Voilà pour l'astuce
Dernière modification par Elève linuxien (Le 17/09/2009, à 10:13)
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#2 Le 11/09/2009, à 14:52
- TTF77
Re : Erreur sur commande find rm [RESOLU]
Hi,
A tout hasard, ajouter l'option '-depth' à la commande find.
man find :
-depth Process each directory contents before the directory itself.
Cordialement
Hors ligne
#3 Le 17/09/2009, à 09:27
- Elève linuxien
Re : Erreur sur commande find rm [RESOLU]
Salut à vous,
Merci TTF77, je viens de tester la commande et ça marche à merveille.
Pour ceux qui comme moi parle le Russe, le Chinois, le Grec, le Bulgare mais pas l'anglais :
man find :
-depth = Traiter d'abord les sous-repertoires avant le repertoire lui-meme.
Donc la commande
find /dossier/ -depth -type d -a -mtime +7 -exec rm -r {} \;
Encore Merci et bon vol TTF77
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#4 Le 17/09/2009, à 10:12
- Totor
Re : Erreur sur commande find rm [RESOLU]
La suppression de fichier/dossier via la commande s'effectue par l'option -delete. Pas besoin d'uiliser -exec rm ...
Par ailleurs, l'option -delete implique l'utilisation de -depth.
La commande simplifiée est donc :
find /dossier/ -type d -a -mtime +7 -delete
-- Lucid Lynx --
Hors ligne
#5 Le 17/09/2009, à 11:17
- Elève linuxien
Re : Erreur sur commande find rm [RESOLU]
Exact Totor, ça marche, mais uniquement si le dossier est vide..?
Cependant je ne saisi pas très bien la différence entre les deux
Mais bon la première marche bien.
Merci à toi.
Dernière modification par Elève linuxien (Le 17/09/2009, à 11:47)
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#6 Le 17/09/2009, à 13:15
- Totor
Re : Erreur sur commande find rm [RESOLU]
désolé... j'ai testé uniquement avec des dossiers vides
-- Lucid Lynx --
Hors ligne