[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: