Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Oct 1997 12:58:10 +1000 (EST)
From:      netserv@mo.cc.swin.edu.au (Bob Schorer)
To:        questions@FreeBSD.org
Subject:   Re: deleted huge directory
Message-ID:  <199710240258.CAA03111@mo.cc.swin.edu.au>

next in thread | raw e-mail | index | archive | help
The 'ls' command fails because it needs to sort the entries
and must therefore read them into memory first.

'find' should work ok, or you can use the following small
program (if you want, you could add a call to the unlink
function to remove each file within the loop).

Bob Schorer

#include	<stdio.h>
#include	<sys/types.h>
#include	<errno.h>
#ifdef DIRENT
#include	<dirent.h>
#define	direct	dirent
#else
#include	<sys/dir.h>
#endif

main(argc, argv)
int	argc;
char	**argv;
{
	DIR		*fd;
	struct
	    direct	*cat;

	if (!(fd=opendir(*(argv+1)))) {
		printf("Directory not found\n");
		exit(0);
	}

	while ((cat=(struct direct*)readdir(fd)))
		printf("%s\n", cat->d_name);

	closedir(fd);

}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710240258.CAA03111>