rmdir when directory is not empty
Benjamin Franz
snowhare at nihongo.org
Tue Dec 20 19:12:11 UTC 2005
On Tue, 20 Dec 2005, Chasecreek Systemhouse wrote:
> On 12/20/05, Mogens Kjaer <mk at crc.dk> wrote:
>
>>> That won't work on directories that have tens of thousands of files.
>>
>> Why not?
>>
>> As long as you don't do a:
>>
>> rm -f /dir/folder-with-many-files/*
>>
>> that, of course won't work, but
>>
>> rm -rf /dir/folder-with-many-files
>>
>> should work.
>
>
> Have you tried it? rm will fail because the shell cannot keep track
> of that many;
> the find cmd works because it deals with one file at a time.
Yes. I have done it. On a directory with roughly a million files in it. It
took a long time because the old ext2/3 non-indexed directories scale
badly performance-wise but completed fine.
The shell has nothing to do with rm beyond invoking the program. If
you don't believe me - check the source code for rm for yourself.
The shell only gets involved when you do something like 'rm -rf /dir/folder/*'
where it has to expand the wildcarded parameters before rm is actually
invoked. And then you are correct - the shell will balk if the
rsulting list of files is too long for it to cope with.
--
Benjamin Franz
The designer of a new kind of system must participate fully in the implementation.
- Donald E. Knuth
More information about the fedora-list
mailing list