Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 11/09/2009, à 12: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 wink

Dernière modification par Elève linuxien (Le 17/09/2009, à 11:13)


"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso

Hors ligne

#2 Le 11/09/2009, à 15: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, à 10: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 big_smile


"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso

Hors ligne

#4 Le 17/09/2009, à 11: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, à 12: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 big_smile
Mais bon la première marche bien. roll
Merci à toi.

Dernière modification par Elève linuxien (Le 17/09/2009, à 12:47)


"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso

Hors ligne

#6 Le 17/09/2009, à 14:15

Totor

Re : Erreur sur commande find rm [RESOLU]

désolé... j'ai testé uniquement avec des dossiers vides


-- Lucid Lynx --

Hors ligne

Haut de page ↑