Linux display the date when a file was accessed with stat command

last updated in Categories CentOS, Debian Linux, File system, Linux, RedHat/Fedora Linux, Ubuntu Linux

A quick question from my mail bag:


How do I display or get the date when a file was last time accessed?

The best and simplest way is to use stat command. It displays file or file system status such as:

=> File size

=> File type

=> Inode number


=> File access , modify and creation time etc.

stat command example

$ stat /etc/passwd

  File: `/etc/passwd'
  Size: 2453            Blocks: 8          IO Block: 4096   regular file
Device: 806h/2054d      Inode: 25298826    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2007-08-06 04:45:18.000000000 -0500
Modify: 2007-07-17 16:25:12.000000000 -0500
Change: 2007-07-17 16:25:12.000000000 -0500

Display file system status

You can display file system status instead of file status. For example, display status for / file system:
$ stat -f /

  File: "/"
    ID: 0        Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 32161831   Free: 30458361   Available: 28798245
Inodes: Total: 33226752   Free: 33135357

stat command and shell scripts

You can use stat in a shell script. It supports -c option. By default it shows all information about file. Use -c option to specify FORMAT instead of the default. For example store access time in a shell variable:

ATIME=$(stat -c "%x" /etc/passwd)
echo $ATIME

See the stat command man page for full details for the valid format sequences for files:
man stat


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

17 comment

  1. Dear Sir,
    I want know the time of command when command run my any user or root on linux system


  2. => File size

    => File type

    => Inode number

    => UID/GID

    => File access , modify (change) and creation time etc.

    I though that stat command never show creation time. Only access, modify and change. Am I wrong?

  3. Hi,

    I just want to find the list of users who are currently accessing/accessed a purticular file from linux server?


    1. fuser -muv will give you the details who / what process is holding a file. though it will not show file accessed details.

  4. No UNIX / Linux file system do not store creation date while windows do.
    if anybody knws plzz reply me on my email.

  5. Hi,

    On Linux, I want to output a summary list with these info on file datasets:

    Filename Size (in Bytes) Last Active Dates

    If I use “psz *.js” I will get:
    —Bytes—- —Mbytes— –Gbytes– Filename
    4096 0.00391 0.00000381 conv_10ktmigstack.js
    28672 0.02734 0.00002670 convdenoiseddatastk.js
    4096 0.00391 0.00000381 convdenoiseddataxy10ofb.js
    4096 0.00391 0.00000381 convdesigdenoiseddataxy10.js
    28672 0.02734 0.00002670 convdesigdenoisedstk.js

    If I use “stat *.js” I will get:
    [buitv@hololw54 conventional_t]> stat *.js
    File: `conv_10ktmigstack.js’
    Size: 4096 Blocks: 128 IO Block: 4096 directory
    Device: 32h/50d Inode: 3154237336 Links: 2
    Access: (0775/drwxrwxr-x) Uid: (115419/ buitv) Gid: ( 62/landmark)
    Access: 2012-10-08 09:31:35.847520000 -0500
    Modify: 2011-02-01 09:57:53.905232000 -0600
    Change: 2011-11-10 15:13:49.274708746 -0600

    How do I do this to combine the info (Filename, Size & Last Active Date) in 3 columns in one run?


    Have a question? Post it on our forum!