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