Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

#1 Le 10/08/2011, à 11:25

Spirale21

Message d'erreur avec find [Résolu]

bonjour,
voilà j'ai besoin de vos lumières...
La situation: Trouvez dans un répertoire mes sous répertoires vides et les supprimer pour celà j'ai trouvé la commande suivante:
find . -type d -a -empty -exec rm -ri {} \; et même find -type d -a -empty -exec rm -ri {} \;
il fait son travail (il trouve les répertoires vides et les supprime) mais me met comme message
find: "./repp": Aucun fichier ou dossier de ce type (repp étant un répertoire vide) o_O
Je ne sais pas pourquoi alors je fais appel à vous
Merci big_smile

Dernière modification par Spirale21 (Le 10/08/2011, à 21:34)


il y a trois manière de faire: la bonne, la mauvaise et la mienne

Hors ligne

#2 Le 10/08/2011, à 11:41

Compte anonymisé

Re : Message d'erreur avec find [Résolu]

Et ça ?

find . -type d -empty -exec rmdir {} \;

#3 Le 10/08/2011, à 11:52

Spirale21

Re : Message d'erreur avec find [Résolu]

Merci mais même message d'erreur
find: "./repp": Aucun fichier ou dossier de ce type (repp étant un répertoire vide) o_O
il fait son boulot quand même. Je peux remplacer -exec rm -r {} \; par -delete mais c'est pas amusant!! big_smile je n'ai pas de messages d'erreurs.
Et une question en passant... Comment on fait pour mettre une ligne de console dans le forum?


il y a trois manière de faire: la bonne, la mauvaise et la mienne

Hors ligne

#4 Le 10/08/2011, à 12:01

Compte anonymisé

Re : Message d'erreur avec find [Résolu]

as-tu les droits rw sur le répertoire  "./repp" ?

"Comment on fait pour mettre une ligne de console dans le forum ?"
bouton "Texte préformaté" d'édition message bt_pre.png
[ code ]toto[ /code ]  sans les espaces dans [ ] doit donner

toto

Dernière modification par Compte anonymisé (Le 10/08/2011, à 12:16)

#5 Le 10/08/2011, à 13:14

ehmicky

Re : Message d'erreur avec find [Résolu]

Que te donne :

ls -l repp

Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#6 Le 10/08/2011, à 14:40

Postmortem

Re : Message d'erreur avec find [Résolu]

Salut,
Pour éviter l'erreur :

find . -depth -type d -empty -exec rm -ri {} \;

EDIT : il n'y a pas d'erreur quand on utilise -delete car -delete implique -depth

man find a écrit :

-delete
Delete  files; true if removal succeeded.  If the removal failed, an error message is issued.  Use of this action automatically turns on the '-depth' option.

RE-EDIT : soit l'arbo suivante (il n'y a qu'un fichier qui se trouve dans le répertoire où je suis au moment d'exécuter la commande ; tous les autres répertoires sont donc vides) :

$ find .
.
./test3
./test3/toto3
./test3/toto1
./test3/toto2
./un_fic.txt
./test1
./test1/toto3
./test1/toto1
./test1/toto2
./test2
./test2/toto3
./test2/toto1
./test2/toto2

Si tu fais le find sans -depth, en plus des messages d'erreurs, il restera les répertoires au premier niveau :

$ find . -type d -empty -exec rm -r {} \;
find: ./test3/toto3: Aucun fichier ou répertoire de ce type
find: ./test3/toto1: Aucun fichier ou répertoire de ce type
find: ./test3/toto2: Aucun fichier ou répertoire de ce type
find: ./test1/toto3: Aucun fichier ou répertoire de ce type
find: ./test1/toto1: Aucun fichier ou répertoire de ce type
find: ./test1/toto2: Aucun fichier ou répertoire de ce type
find: ./test2/toto3: Aucun fichier ou répertoire de ce type
find: ./test2/toto1: Aucun fichier ou répertoire de ce type
find: ./test2/toto2: Aucun fichier ou répertoire de ce type

$ find .
.
./test3
./un_fic.txt
./test1
./test2

Alors que :

$ find . -depth -type d -empty -exec rm -r {} \;
$ find .
.
./un_fic.txt

Dernière modification par Postmortem (Le 10/08/2011, à 15:00)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#7 Le 10/08/2011, à 21:42

Spirale21

Re : Message d'erreur avec find [Résolu]

Merci à tous... Oui c'était -depth qui manquait !!!
j'avais pourtant lu le manuel, mais pas assez apparemment.

find . -deph -type d -a -empty -exec rm -r {} \;

marche impeccable, encore merci PostMortem.
Merci aux autres. Pour info (pour ehmicky)

ls -l repp
0

Dernière modification par Spirale21 (Le 10/08/2011, à 21:43)


il y a trois manière de faire: la bonne, la mauvaise et la mienne

Hors ligne

#8 Le 10/08/2011, à 21:59

ehmicky

Re : Message d'erreur avec find [Résolu]

Par ailleurs, tu peux reduire la ligne ci-dessus par :

find -type d -empty -delete

puisque :
   -delete et -exec rm -r {} \; ont le même effet sur un répertoire vide
   -delete implique -depth,
   -a est impliqué par défaut entre deux tests
   . est le répertoire de recherche par défaut


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne