stat Command in Linux with Examples


This tutorial explains Linux “stat” command, options and its usage with examples.

stat – display file or file system status

Description :

Displays the detailed status of a particular file or a file system.

Usage :
stat [OPTION]… FILE…

Options :

-f, –filesystem
display filesystem status instead of file status
-c, –format=FORMAT
use the specified FORMAT instead of the default
-L, –dereference
follow links
-Z, –context
print the SELinux security context
-t, –terse
print the information in terse form
display this help and exit
output version information and exit

Note: Join free Sanfoundry classes at Telegram or Youtube

The valid format sequences for files (without –file-system):

%a	 Access rights in octal
%A	 Access rights in human readable form
%b	 Number of blocks allocated (see %B)
%B	 The size in bytes of each block reported by %b
%d	 Device number in decimal
%D	 Device number in hex
%f	 Raw mode in hex
%F	 File type
%g	 Group ID of owner
%G	 Group name of owner
%h	 Number of hard links
%i	 Inode number
%n	 File name
%N	 Quoted file name with dereference if symbolic link
%o	 I/O block size
%s	 Total size, in bytes
%t	 Major device type in hex
%T	 Minor device type in hex
%u	 User ID of owner
%U	 User name of owner
%x	 Time of last access
%X	 Time of last access as seconds since Epoch
%y	 Time of last modification
%Y	 Time of last modification as seconds since Epoch
%z	 Time of last change
%Z	 Time of last change as seconds since Epoch

Valid format sequences for file systems:

%a	 Free blocks available to non-superuser
%b	 Total data blocks in file system
%c	 Total file nodes in file system
%d	 Free file nodes in file system
%f	 Free blocks in file system
%C	 Security context in SELinux
%i	 File System ID in hex
%l	 Maximum length of filenames
%n	 File name
%s	 Block size (for faster transfers)
%S	 Fundamental block size (for block counts)
%t	 Type in hex
%T	 Type in human readable form

Examples :

1. A basic example

$ stat test.txt 
  File: `test.txt'
  Size: 1014      	Blocks: 8          IO Block: 4096   regular file
Device: 805h/2053d	Inode: 1448800     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-07-21 17:20:33.548997182 +0530
Modify: 2011-08-16 23:27:19.648480473 +0530
Change: 2011-08-16 23:27:19.648480473 +0530

2. Display file system status using -f flag

If the supplied argument is not a file but a file system instead, then -f flag can be used with the stat command to display the status of a file system.

$ stat -f /dev/sda5
  File: "/dev/sda5"
    ID: 0        Namelen: 255     Type: tmpfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 383415     Free: 383325     Available: 383325
Inodes: Total: 383415     Free: 382530

3. Display file system status without using -f flag


So we see that in the above output, all the information related to file system /dev/sda5 was displayed. Also, if -f is not used then stat treats the input as a normal file :

$ stat /dev/sda5
  File: `/dev/sda5'
  Size: 0         	Blocks: 0          IO Block: 4096   block special file
Device: 5h/5d	Inode: 1881        Links: 1     Device type: 8,5
Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (    6/    disk)
Access: 2012-07-21 20:48:02.578827617 +0530
Modify: 2012-07-21 20:48:02.578827617 +0530
Change: 2012-07-21 20:48:02.578827617 +0530

4. Using format strings to print specific information through ‘–format’ flag

The is done using the -b option.

$ stat --format=%g test.txt
$ stat --format=%G test.txt
$ stat --format=%i test.txt
$ stat --format=%n test.txt
$ stat --format=%g%G%i%n test.txt 

5. Using format strings for file systems


The same flag ‘–format’ can be used to display selected information for file systems :

$ stat --file-system -c%n /dev/sda5
$ stat --file-system -c%d /dev/sda5
$ stat --file-system -c%c /dev/sda5

6. Output information in terse form using -t flag

$ stat -t test.txt
test.txt 1014 8 81a4 0 0 805 1448800 2 0 0 1342871433 1313517439 1342884993 4096

Sanfoundry Global Education & Learning Series – 1000 Linux Tutorials.

If you wish to look at all Linux commands and their usage examples, go to Linux Commands Tutorial.

Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & technical discussions at Telegram SanfoundryClasses.