Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#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