It is important to distinguish between a file or directory's change time (ctime), access time (atime), and modify time (mtime).
ctime -- In UNIX, it is not possible to tell the actual creation time of a file. The ctime--change time--is the time when changes were made to the file or directory's inode (owner, permissions, etc.). The ctime is also updated when the contents of a file change. It is needed by the dump command to determine if the file needs to be backed up. You can view the ctime with the ls -lc command.
atime -- The atime--access time--is the time when the data of a file was last accessed. Displaying the contents of a file or executing a shell script will update a file's atime, for example. You can view the atime with the ls -lu command.
mtime -- The mtime--modify time--is the time when the actual contents of a file was last modified. This is the time displayed in a long directoring listing (ls -l).
Find atime, ctime and mtime with ls
The simplest way to confirm the times associated with a file is to use ls command.
Timestamps are shown when using the long-format output of ls command, ls -l:
unixmantra# ls -l /tmp/file1 -rw-r--r-- 1 greys root 9 2013-08-25 09:10 /tmp/file1
This is the default output of ls -l, which shows you the time of the last file modification – mtime. In our example, file /tmp/file1 was last changed around 9:10am.
If we want to see the last access time for this file, atime – you need to use -lu options for ls. The output will probably show some later time:
unixmantra# ls -lu /tmp/file1 -rw-r--r-- 1 rose rose 9 2013-08-25 09:32 /tmp/file111
In the example, it's 9:32am.
Lastly, ls -lc will show you the last time our file was changed,ctime:
unixmantra# ls -lc /tmp/file111 -rw-r--r-- 1 rose rose 9 2013-08-25 09:31 /tmp/file1
To show you how this works, I'll change the ownership of the file and then run the same 3 ls commands to show you that only thectime had been updated. I run the date command just before doing anything else so that you can compare the times:
unixmantra# date Sat Apr 5 07:35:16 IST 2008 unixmantra# chown root /tmp/file1 unixmantra# ls -lc /tmp/file1 -rw-r--r-- 1 root root 9 2008-04-05 07:35 /tmp/file1 unixmantra# ls -lu /tmp/file1 -rw-r--r-- 1 root root 9 2008-04-05 07:27 /tmp/file1 unixmantra# ls -l /tmp/file1 -rw-r--r-- 1 root root 9 2008-04-05 07:10 /tmp/file1
Show atime, ctime and mtime with stat command
In Linux distributions, you will probably find a stat command, which can be used to show all of the times in a more convenient way, and among plenty of other useful information about your file:
unixmantra# stat /tmp/file1 File: `/tmp/file1' Size: 9 Blocks: 8 IO Block: 4096 regular file Device: 811h/2065d Inode: 179420 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2013-08-25 07:27:51.000000000 +0100 Modify: 2013-08-25 07:10:14.000000000 +0100 Change: 2013-08-25 07:35:22.000000000 +0100
Examples
$ cat file
file's atime is updated.
$ chmod g+w file
file's ctime is updated.
$ echo "File contents" >> file
file's ctime and mtime are updated.
0 blogger-disqus:
Post a Comment