Re: [ssfr] Trouver et supprimer des répertoires vides

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Bonjour Jérémie,


Le 13-01-2011, à 16:17:09 +0100, Jeremie COURREGES-ANGLAS (ktulu+scripts-fr@xxxxxxxxxx) a écrit :

> On Thursday 13 January 2011 à 04:08:27PM, Yves Rutschle wrote:
> > On Thu, Jan 13, 2011 at 03:53:26PM +0100, steve wrote:
> > > J'ai donc essayé en virant -maxdepth, et là ça marche à moitié. En
> > > effet, elle trouve bien le d ci-dessus, mais n'efface que lui. Il faut
> > > donc relancer la commande autant de fois qu'il y a de sous-répertoires,
> > > pour remonter dans l'arborescence. Pas très pratique. Comment faire pour
> > > effacer toutes l'arborescence ?
> >
> > Avec -depth, pour traiter le contenu du répertoire avant le
> > répertoire lui-même ("depth first" par opposition à "breadth
> > first").
> >
> > Y.
> 
> Comme l'a suggéré Yves :
> 
> $ find /foo -depth -type d -empty -exec rm -Ri {} \;

Voir ma remarque en réponse.

> A noter que -delete n'est pas portable, contrairement à rm -i.
> Sinon avec GNU find :
> 
> $ find /foo -depth -type d -empty -ok rmdir {} \;

Alors :

 $ tree
 .
 ├── b
 │   └── asdasd.txt
 ├── m
 │   └── n
 │       └── l
 │           └── o
 │               └── p
 └── p
     └── q
             └── r


$ find_empty_dirs.sh
 < rmdir ... ./p/q/r > ? y
 < rmdir ... ./p/q > ? y
 < rmdir ... ./p > ? y
 < rmdir ... ./m/n/l/o/p > ? y
 < rmdir ... ./m/n/l/o > ? y
 < rmdir ... ./m/n/l > ? y
 < rmdir ... ./m/n > ? y
 < rmdir ... ./m > ? y


Pareil que la solution d'Yves, il faut répondre y autant de fois qu'il y
a d'étage. Donc toujours pas très pratique.




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/