Re: im Skript feststellen ob ein Verzeichnis leer ist
Hallo,
Frank Dietrich wrote:
> wie kann ich denn in einem Skript feststellen ob ein Verzeichnis leer
> ist oder noch Dateien enthält?
Das kann man sich relativ einfach selber stricken (siehe Anhang). Macht
bei großen Verzeichnissen tatsächlich einen ziemlichen Unterschied:
$ time /tmp/dirempty Listen/Archiv/d-u-g
real 0m0.047s
user 0m0.000s
sys 0m0.001s
$ piii700:/var/spool/cyrus/mail/user/wolf# echo $?
1
$ time ls Listen/Archiv/d-u-g | wc -l
58691
real 0m4.970s
user 0m1.025s
sys 0m0.177s
hth, Wolf
--
Büroschimpfwort des Tages: Gleitzeitökonom - ab 17 Uhr daheim. (Frank Simon)
#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
// taken from http://www.pronix.de/pronix-95.html
int main(int argc, char **argv){
DIR *dir;
struct dirent *dirzeiger;
int result=0;
if(argc==2)
dir=opendir(argv[1]);
else
dir=opendir(".");
if(dir==NULL){
fprintf(stderr,"Fehler bei opendir: %s\n", strerror(errno));
return (EXIT_FAILURE);
}
while((dirzeiger=readdir(dir))!=NULL){
if(strcmp(dirzeiger->d_name, ".")==0 || strncmp(dirzeiger->d_name, "..")==0)
continue;
result=1;
break;
}
closedir(dir);
return result;
}
Reply to: