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". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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 wink

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 big_smile


"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 big_smile
Mais bon la première marche bien. roll
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

Haut de page ↑