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.