time stamp of file create


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers time stamp of file create
# 1  
Old 06-11-2004
Question time stamp of file create

Hi,


Sounds a simple request but I also need (would like) to gather the seconds too. I'm not even sure if this is held. I would think it is, somewhere??!!?!

I belive that stat would/could work but I don't do C (we'll not yet).

Is there any comamnd line util I can use?

SunOS.

Cheers and beers,
Neil
# 2  
Old 06-11-2004
Unix does not store the file's creation time.
# 3  
Old 06-11-2004
perl version for inodetime
Code:
#!/usr/contrib/bin/perl
#^###################################################################
#^ $Header: inodetime.pl,v 1.1 97/01/20 10:17:00 http srvr? $
#^###################################################################
#^ PROGRAM DESCRIPTION
#^ -------------------
#^ This program prints the modification times and names of files.
#^ It uses the following format:  inodetime.pl filename
#^ It will accept:  inodetime.pl filename1 filename2 filename3
#^                  inodetime.pl /tmp/file*
#^ The format of the output is: YYYYMMDDhhmmss filename
#^ example:
#^           $ inodetime.pl /tmp/t*
#^           19961115105425 /tmp/test.sql 
#^           19970116113616 /tmp/tststat.pl 
#^ 
#^ TRICK To Remember The Program Name
#^ ----------------------------------
#^     inodetime == I No De Time
#^     ^^ ^ ^ 
#^                                                                KSG 
#^###################################################################

############################################
# Get the (next) input from the command line 
############################################
while ($curfile = $ARGV[0])
{
   #################################################
   # Do following code block only if $curfile exists
   #################################################
   if (-e $curfile)
   {
      ###############################
      # stat structure into variables
      ###############################
      ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
      $atime,$mtime,$ctime,$blksize,$blocks)
      = stat("$curfile");
      ###############################
      # time structure into variables
      ###############################
      local($sec,$min,$hr,$day,$mon,$yr,$wday,@dntcare) = localtime($mtime);
      $yr = ($yr>=70) ? $yr+1900 : $yr+2000;
      $yr="$yr";
      $mon = (++$mon < 10) ? "0$mon" : "$mon";
      $day = ($day < 10) ? "0$day" : "$day";
      $hr  = ($hr < 10) ? "0$hr" : "$hr";
      $min = ($min < 10) ? "0$min" : "$min";
      $sec = ($sec < 10) ? "0$sec" : "$sec";
      ##################################################################
      # Rearrange in the YYYYMMDDhhmmss format and assign to $dte variable
      ##################################################################
      $dte = join('',$yr,$mon,$day,$hr,$min,$sec);
      ######################################
      # Print modification date and filename
      ######################################
      print ("$dte $curfile\n");
      }
   ########################################
   # Shift to next position in command line
   ########################################
   shift (@ARGV);
}


#~###################################################################
#~###################################################################
#~
#~ $Log:	inodetime.pl,v $
#~ Revision 1.1  97/01/20  10:17:00  10:17:00  http ()
#~ reversed output
#~ from: filename date
#~ to:   date filename
#~ 
#~ Revision 1.0  97/01/17  12:37:32  12:37:32  http ()
#~ Initial revision
#~ 
#~###################################################################
#~###################################################################

# 4  
Old 06-11-2004
Sort of the same thing in C - using stat
Code:
/* this displays files times to the second: ctime & mtime */
/* usage filetime <file name> [file name...[]] -  for HPUX */

/* jmc 4/25/1997 10:09AM */

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <sys/stat.h>   
#include <string.h>
#include <errno.h>


void statfile(char *, struct stat *);
void usage(void); 
void bail(void);  
void filetimes(char *, struct stat *);    

int main(int argc, char *argv[]){      
       struct stat st;
       int i=0;    
       char tmp[256]={'\0'};
       if(argc <2) usage();       
       for(i=1; i<argc;i++){       
               strcpy(tmp,argv[i]);
               statfile(tmp,&st);
               filetimes(tmp,&st);            
       }        
       
       return 0;
}                         
void filetimes(char *fname,struct stat *st){  /* display the file times */
       struct tm *tmptr;            
       struct stat lst;           
       char output[91]={'\0'};
       lst = *st;   
       printf("File times for %s\n",fname);
       tmptr=localtime(&lst.st_atime);
       strftime(output,80,"Last status change: %D %T",tmptr);
       printf("\t%s\n",output);
       tmptr=localtime(&lst.st_mtime);
       strftime(output,80,"Last modify time  : %D %T",tmptr);
       printf("\t%s\n",output);

       
}
void statfile(char *fname, struct stat *st){
       int result=0;   
       result=stat(fname,st);
       if(result == (-1)) bail();
}               
void usage(void){
    printf("usage:  filetime <filenames> \n");  
    bail();
}                

void bail(void){
    if (errno) perror("Fatal error");
    exit(EXIT_FAILURE);
}

# 5  
Old 06-11-2004
Many thanks....Perl solution is great.

Cheers and beers,
Neil
# 6  
Old 06-14-2004
Jim,

I'm a bit confused. I was under the impression that Unix doesnt track the create time of a file.

Isnt your script tracking i-node changes? In which case the time would change when someone does a chown or chmod.
# 7  
Old 06-14-2004
I've just tried the perl script version and it just brings back the last time the file was updated.

I think nhatch wanted the time the file was actually created, which ( as has been said) isn't stored ...
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Capturing time stamp in file name

I have a file that is created via a perl script where the file is named like so: 01-07-2016_10:17:08. I am running a shell script that needs to take this file and print it. I can capture the date portion fine, but I am unsure how to capture the time stamp, since there will be a difference from what... (1 Reply)
Discussion started by: ldorsey
1 Replies

2. Shell Programming and Scripting

Check file time stamp

Hi, I need help to read file in a directory on basis of time stamp. e.g. If file access in last 2 minutes it should not be copy to remote directory. Below is my script. #!/bin/ksh DATE=`date +"%Y-%m-%d_%H%M"` SEPARATER=" " exec < out_interfaces.cfg while read source_path... (10 Replies)
Discussion started by: qamar.alam
10 Replies

3. Shell Programming and Scripting

Unable to create logfile with local time stamp using perl

Hello All, Morning, I am facing problem with my code while creating a log with name as current time stamp using perl. Here is the code. #!/usr/bin/perl my $time=localtime; my ($day,$month,$date,$tm,$year)=split(/ /,$time); my $stamp=$year."_".$month."_".$date; my... (4 Replies)
Discussion started by: krsnadasa
4 Replies

4. Shell Programming and Scripting

file time stamp

Hi All, I am facing small problem. i want to print file time stamp on which date file has placed in the server. i have given some code but its not giving the year. any help appreciated. regards rajesh. (4 Replies)
Discussion started by: rajesh_pola
4 Replies

5. Shell Programming and Scripting

creating a file with time stamp

Hi guys, Here my scenario is to find the files of previous days if the previous day load had not done. for that i created a file with time stamp and this file is created after the load completes. so every dau i search for the this file with previous days time stamp. i want to create a file... (1 Reply)
Discussion started by: apple2685
1 Replies

6. Shell Programming and Scripting

Set date and time stamp of one file to another

Hi I use "touch -t xxxxxxxx" command to set date/time stamp of a file. My requirement is to read the date/time stamp of a file and apply it to another file. Is there anyway to do it simple instead of manually taking date/stamp of first file? TIA Prvn (2 Replies)
Discussion started by: prvnrk
2 Replies

7. Shell Programming and Scripting

Change time stamp of a file

Hi, As i know , we can change the time stamp of a file by touch command, i did change in a file and it is looking as given # ls -l abcd -rw-r--r-- 1 batsoqa sicusers 0 Feb 17 2010 abcd actually i want to see the output like this -rw-r--r-- 1 batsoqa sicusers ... (3 Replies)
Discussion started by: apskaushik
3 Replies

8. Shell Programming and Scripting

change the time stamp of file

can we change the timestamp of a file to old date. -rwxrwxrwx 1 root other 330 Jul 1 16:03 abc.txt it shows creation time is 16.03 can i change it to previous time :) (2 Replies)
Discussion started by: anish19
2 Replies

9. Shell Programming and Scripting

how do i put a time stamp in a file name

i want to copy a filea.dat to a file name in the format of filea_yyyymmdd_hhmi.dat using something like DTSTAMP=$(date "+%Y%m%d"), which puts it in format filea_yyyymmdd.dat (5 Replies)
Discussion started by: jhamm
5 Replies

10. UNIX for Dummies Questions & Answers

File date and time stamp

I have to capture the creation date and time stamp for a file. The ls command doesn't list all the required information. I need year, month, day, hour, minute and second. Any ideas... (1 Reply)
Discussion started by: Xenon
1 Replies
Login or Register to Ask a Question