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; }

