On Fri, Dec 07, 2007 at 05:37:45PM +1100, Cameron Simpson wrote: > On 06Dec2007 21:15, A Darren Dunham <[EMAIL PROTECTED]> wrote: > | > >> chmod a-w dir/new > | > >> if [ `find dir -type f` ] ; then > | > > > | > > You have to do something like this instead: > | [snip other responses] > | > | Perhaps I've misunderstood the reason for doing this, but I would just > | ask find to do a rmdir, and let it fail if the directory isn't empty. > | > | find dir -depth -type d -exec rmdir {} \; > | > | If 'dir' is still around when that finishes, it's probably because > | there's a file in there now. In the meantime, it's removed all empty > | subtrees. > > Yeah, but without even invoking find: > > rmdir dir/new dir/tmp dir/cur dir \ > || mkdir -p dir/new dir/tmp dir/cur > > Robust, safe, trivial. > > People always seem to forget that rmdir is perfectly safe, in that it > won't remove empty directories. > Now that's quite clever! :-) Can anyone see anything wrong with it?
-- Chris Green