#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
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!! 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
[ 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
-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