<<< Date Index >>>     <<< Thread Index >>>

Re: Reliable/safe way of removing empty maildirs?



On Thu, Dec 06, 2007 at 10:03:20AM -0600, Kyle Wheeler wrote:
> On Thursday, December  6 at 04:46 PM, quoth Rado S:
> >=- Chris G wrote on Thu  6.Dec'07 at 13:03:13 +0000 -=
> >
> >> What's a reliable way of removing empty maildirs?
> >> Presumably it's possible but you'd have to follow some protocol that
> >> wouldn't interfere with the proper writing of messages to the maildir.
> >
> >chmod a-w dir/new
> >rm -rf dir
> 
> Well, that's not *quite* safe, now is it? There's a race condition 
> between deciding that a maildir is empty and then changing the 
> permissions such that no one can deliver mail to it. It would have to 
> be more like this:
> 
> chmod a-w dir/new
> if [ `find dir -type f` ] ; then

You have to do something like this instead:

found=`find dir -type f`
if -n "$found" ; then

At least on my system (Mac OS X 10.3 = Darwin 7.9.0), where find(1)
exits with status 0 even if nothing is found.

>      echo "Not empty!"
>      chmod a+w dir/new
> else
>      rm -rf dir
> fi
> 
> ~Kyle

Paul.

-- 
Paul Hoffman <nkuitse@xxxxxxxxxxx>