rmdir when directory is not empty
Mike McCarty
mike.mccarty at sbcglobal.net
Tue Dec 20 19:03:44 UTC 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.
>
> --
> WC -Sx- Jones | http://ccsh.us/ | Open Source Consulting
$ cd
$ mkdir bigdir
$ cd bigdir
$ mkdir anotherdir
$ touch anotherdir/afile
$ ls anotherdir
afile
$ cp -p ../makefiles.c .
$ cat makefiles.c
#include <stdlib.h>
#include <stdio.h>
#define NUM_FILES 10000
int main(void) {
int FileNum;
char TouchFile[20];
for (FileNum = 0; FileNum < NUM_FILES; FileNum++) {
sprintf(TouchFile,"touch file%08d",FileNum);
if (system(TouchFile) == -1) {
printf("oops: %s\n",TouchFile);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}
$ gcc -o makefiles makefiles.c
$ ./makefiles
$ ls | head
anotherdir
file00000000
file00000001
file00000002
file00000003
file00000004
file00000005
file00000006
file00000007
file00000008
$ ls | tail
file00009992
file00009993
file00009994
file00009995
file00009996
file00009997
file00009998
file00009999
makefiles
makefiles.c
$ ls | wc
10003 10003 130033
$ cd
$ rm -r bigdir
$ ls bigdir
ls: bigdir: No such file or directory
Works for me, with 10002 files and one directory with
a file under it.
Mike
--
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
This message made from 100% recycled bits.
You have found the bank of Larn.
I can explain it for you, but I can't understand it for you.
I speak only for myself, and I am unanimous in that!
More information about the fedora-list
mailing list