Patch to find(1) to find large files.
David Herron, NPR Lover
david at ukma.UUCP
Tue Jun 4 07:06:06 AEST 1985
Description: Find could really use a -bigger flag. The following context
diff will describes how to add it to find.
Syntax is "-bigger <file>". Which returns true for files which
are bigger than the named file.
Author: David Herron, ukma!david.
Script started on Mon Jun 3 16:51:50 1985
ukma# rcsdiff -r1.1.1.1 -r1.1.1.4 -c find.c
RCS file: RCS/find.c,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.4
diff -c -r1.1.1.1 -r1.1.1.4
*** /tmp/,RCSt1028957 Mon Jun 3 16:52:41 1985
--- /tmp/,RCSt2028957 Mon Jun 3 16:53:22 1985
***************
*** 1,5
#ifndef lint
! static char rcsid[] = "$Header: find.c,v 1.1.1.1 85/01/04 20:18:42 root Exp $";
#endif lint
/*
* $Locker: $
--- 1,5 -----
#ifndef lint
! static char rcsid[] = "$Header: find.c,v 1.1.1.4 85/06/03 16:41:03 root Exp $";
#endif lint
/*
* $Locker: $
***************
*** 4,9
/*
* $Locker: $
* $Log: find.c,v $
* Revision 1.1.1.1 85/01/04 20:18:42 root
* Branch for ukma changes
*
--- 4,23 -----
/*
* $Locker: $
* $Log: find.c,v $
+ * Revision 1.1.1.4 85/06/03 16:41:03 root
+ * Corrected a syntax error.
+ * ukma!david
+ *
+ * Revision 1.1.1.3 85/06/03 16:31:34 root
+ * Slight mistake. Forgot to define bigger() in e4().
+ * ukma!david
+ *
+ *
+ * Revision 1.1.1.2 85/06/03 16:26:55 root
+ * Added command "-bigger file" which will find all the files bigger
+ * than the named file.
+ * -- ukma!david
+ *
* Revision 1.1.1.1 85/01/04 20:18:42 root
* Branch for ukma changes
*
***************
*** 42,47
int Wct = 2560;
long Newer;
struct stat Statb;
--- 56,62 -----
int Wct = 2560;
long Newer;
+ long Bigger; /* CHANGE ukma!david, for bigger() */
struct stat Statb;
***************
*** 157,163
struct anode *e3() { /* parse parens and predicates */
int exeq(), ok(), glob(), mtime(), atime(), user(),
group(), size(), perm(), links(), print(),
! type(), ino(), cpio(), newer();
struct anode *p1;
int i;
register char *a, *b, s;
--- 172,178 -----
struct anode *e3() { /* parse parens and predicates */
int exeq(), ok(), glob(), mtime(), atime(), user(),
group(), size(), perm(), links(), print(),
! type(), ino(), cpio(), newer(), bigger();
struct anode *p1;
int i;
register char *a, *b, s;
***************
*** 248,253
}
Newer = Statb.st_mtime;
return mk(newer, (struct anode *)0, (struct anode *)0);
}
err: fprintf(stderr, "find: bad option < %s >\n", a);
exit(1);
--- 263,280 -----
}
Newer = Statb.st_mtime;
return mk(newer, (struct anode *)0, (struct anode *)0);
+ } else if (EQ(a, "-bigger")) {
+ /*
+ * CHANGE ukma!david -- Add in parsing for -bigger.
+ * Make everything look like -newer since it's the same
+ * kind of operation.
+ */
+ if (stat(b, &Statb) < 0) {
+ fprintf(stderr, "find: cannot access < %s >\n", b);
+ exit(1);
+ }
+ Bigger = Statb.st_size;
+ return mk(bigger, (struct anode *)0, (struct anode *)0);
}
err: fprintf(stderr, "find: bad option < %s >\n", a);
exit(1);
***************
*** 442,447
newer()
{
return Statb.st_mtime > Newer;
}
/* support functions */
--- 469,478 -----
newer()
{
return Statb.st_mtime > Newer;
+ }
+ bigger()
+ {
+ return Statb.st_size > Bigger;
}
/* support functions */
ukma#
script done on Mon Jun 3 16:58:23 1985
More information about the Comp.unix.wizards
mailing list