|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
Bonjour,
J'ai une arborescence avec plusieurs répertoires, certains sont vides, d'autres pas. Je souhaiteirai faire un script me permettant de supprimer les répertoires qui sont vides de fichiers, mais aussi l'arborescence principal. Je m'explique : C:\Rep1\RepA\fichier1 => alors je ne supprime rien. C:\Rep2\RepB\RepC => je supprime le repC, mais aussi le repB et le Rep2, puis qu'il ne contienne pas de fichier. Merci pour votre aide |
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
tu as besoin d'un test sur répertoire
lecture recursive : pour tout répertoire si vide effacer. Code :
find /chemin_base/ -type d -exec if ........... rmdir {} ; fi \;
|
|
|
10
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Code :
find /chemin/ -depth -type d -empty -delete Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
20
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 965 ![]() |
Une solution portable:
Code :
find /chemin -depth -type d -exec echo rmdir {} + 2>/dev/null
__________________
ɹǝsn *sıɹɐlos* |
|
|
11
|
|
|
#6 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
finalement, j'ai opté pour cette solution :
Mais le top, ça serait de pouvoir afficher les répertoires qui ont été supprimés. comment puis je m'y prendre. l'option -print affiche tout. Citation:
|
|
|
|
01
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Et l'option verbeuse "-v" de "rmdir" ne fait pas l'affaire ?
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#8 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 965 ![]() |
Pas sous la plupart des Unix car elle n'est pas standard, c'est un gnuisme.
__________________
ɹǝsn *sıɹɐlos* |
|
|
11
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 965 ![]() |
Citation:
Code :
find /chemin -depth -type d -exec ksh -c "rmdir \$0 && echo \$0 supprimé" {} \; 2>/dev/null
__________________
ɹǝsn *sıɹɐlos* |
|
|
|
20
|
|
|
#10 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
ça ne fonctionne pas, j'ai le message d'erreur suivant :
Citation:
Merci pour votre aide |
|
|
|
01
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Essaies avec "sh"
Sinon sur quel système es-tu ?
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
01
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
j'ai la meme erreur.
A quoi sert le sh ou le ksh. si je faits which ksh, il le trouve bien ! |
|
|
01
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Euh... t'as bien recopié la syntaxe comme il faut au moins et pas comme dans ton dernier message où il manque les quotes autour de la commande sensée être interprétée par ksh ainsi que la protection du point virgule final ???
Code :
find /TEMP/TOTO/TITI -depth -type d -exec ksh -c "rmdir $0 && echo $0 supprimé" {} \;
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
20
|
|
|
#14 | |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 965 ![]() |
Citation:
Code :
find /TEMP/TOTO/TITI -depth -type d -exec ksh -c "rmdir \$0 && echo \$0 supprimé" {} \; 2>/dev/null
__________________
ɹǝsn *sıɹɐlos* |
|
|
|
20
|
|
|
#15 | |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
|
10
|
|
|
#16 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
Citation:
rmdir : ksh : Fichier ou répertoire inexistant rmdir : ksh : Fichier ou répertoire inexistant |
|
|
|
01
|
|
|
#17 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
On va se répéter...
Quel système as-tu ? Est-ce que les répertoires existent au moins ?
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
Je suis sous HP UX itanium.
le répertoire existe en réalité, j'ai l'impression que -exec ksh Pour lui KSH est un répertoire q'il ne trouve pas, normal puisqu'il n'existe pas. |
|
|
01
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
donnes lui le chemin complet vers ksh pour voir.
|
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 965 ![]() |
Est-tu sûr d'avoir correctement recopié la commande ?
Essaie pour voir: Code :
find /TOTO/TITI/TATA -depth -type d -exec ksh -c "echo : \$0 : \$1 :" {} \;
__________________
ɹǝsn *sıɹɐlos* |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com