home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
usenet
/
altsrcs
/
1
/
1622
< prev
next >
Wrap
Internet Message Format
|
1990-12-28
|
2KB
From: chet@cwns1.CWRU.EDU (Chet Ramey)
Newsgroups: alt.sources
Subject: [comp.unix.questions] Re: how to compare file modification time in bourne shell script
Message-ID: <1990Jul26.001648.3365@math.lsa.umich.edu>
Date: 26 Jul 90 00:16:48 GMT
Archive-name: newer/25-Jul-90
Original-posting-by: chet@cwns1.CWRU.EDU (Chet Ramey)
Original-subject: Re: how to compare file modification time in bourne shell script
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)
[Reposted from comp.unix.questions.
Comments on this service to emv@math.lsa.umich.edu (Edward Vielmetti).]
In article <1990Jul23.233044.2729@silma.com> aab@silma.UUCP () writes:
>newer file1 file2
>that returns 0 if file1 is newer than file2 else returns 1
Here's something I picked up a while back...
/*
* From Henry Spencer
*
* > There doesn't appear to be any decent way to compare the last modified
* > times of files from the shell...
*
* Before everybody starts inventing their own names for this, it should be
* noted that V8 already has a program for this, newer(1). It takes two
* filenames as arguments, and exits with status 0 if and only if either
* (a) the first exists and the second does not, or (b) both exist and the
* first's modification time is at least as recent as the second's. Other-
* wise it exits with non-zero status. (The preceding two sentences are
* essentially the whole of the manual page for it.)
*
* Relatively few people have V8, but in the absence of any other precedent
* for what this facility should like look, it seems reasonable to follow
* V8's lead.
*
* Here is an independent rewrite, done from the manual page and not the
* code, by me, hereby placed in the public domain:
*/
/*
* newer - is first file newer than second?
*
* newer file1 file2
*
* exit with 0 status if file1 exists and file2 does not, or if file1's last
* modified time is at least as recent as file2's.
*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
main(argc, argv)
int argc;
char *argv[];
{
struct stat file1;
struct stat file2;
if (argc != 3) {
fprintf(stderr, "Usage: %s file1 file2\n", argv[0]);
exit(2);
}
if (stat(argv[1], &file1) < 0)
exit(1);
if (stat(argv[2], &file2) < 0)
exit(0);
if (file1.st_mtime >= file2.st_mtime)
exit(0);
exit(1);
}
--
Chet Ramey ``See Figure 1.''
Network Services Group
Case Western Reserve University
chet@ins.CWRU.Edu