Question: How do I find out all the available file attributes. i.e I would like to know more about a file or directory than what the ls -l command displays.
Answer: Everything in Unix is treated as files. This includes devices, directories and sockets — all of these are files. Stat command displays file or filesystem status as explained in this article.
File Stat – Display Information About File
For example, to find out more information about 101hacks.txt file, execute the stat command as shown below.
$ stat 101hacks.txt File: `/home/sathiyamoorthy/101hacks.txt' Size: 854 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 1058122 Links: 1 Access: (0600/-rw-------) Uid: ( 1000/ sathiya) Gid: ( 1000/ sathiya) Access: 2009-06-28 19:29:57.000000000 +0530 Modify: 2009-06-28 19:29:57.000000000 +0530 Change: 2009-06-28 19:29:57.000000000 +0530
Details of Linux Stat Command Output
- File: `/home/sathiyamoorthy/101hacks.txt’ – Absolute path name of the file.
- Size: 854 – File size in bytes.
- Blocks: 8 – Total number of blocks used by this file.
- IO Block: 4096 – IO block size for this file.
- regular file – Indicates the file type. This indicates that this is a regular file. Following are available file types.
- regular file. ( ex: all normal files ).
- directory. ( ex: directories ).
- socket. ( ex: sockets ).
- symbolic link. ( ex: symbolic links. )
- block special file ( ex: hard disk ).
- character special file. ( ex: terminal device file ).
- Device: 801h/2049d – Device number in hex and device number in decimal
- Inode: 1058122 – Inode number is a unique number for each file which is used for the internal maintenance by the file system.
- Links: 1 – Number of links to the file
- Access: (0600/-rw——-): Access specifier displayed in both octal and character format. Let us see explanation about both the format.
- Uid: ( 1000/ sathiya) – File owner’s user id and user name are displayed.
- Gid: ( 1000/ sathiya) – File owner’s group id and group name are displayed.
- Access: 2009-06-28 19:29:57.000000000 +0530 – Last access time of the file.
- Modify: 2009-06-28 19:29:57.000000000 +0530 – Last modification time of the file.
- Change: 2009-06-28 19:29:57.000000000 +0530 – Last change time of the inode data of that file.
Dir Stat – Display Information About Directory
You can use the same command to display the information about a directory as shown below.
$ stat /home/ramesh File: `/home/ramesh' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 803h/2051d Inode: 5521409 Links: 7 Access: (0755/drwxr-xr-x) Uid: ( 401/ramesh) Gid: ( 401/ramesh) Access: 2009-01-01 12:17:42.000000000 -0800 Modify: 2009-01-01 12:07:33.000000000 -0800 Change: 2009-01-09 12:07:33.000000000 -0800
Details of File Permission:
File Permission In Octal Format
This information about the file is displayed in the Access field when you execute stat command. Following are the values for read, write and execute permission in Unix.
- Value Meaning
- 4 Read Permission
- 2 Write Permission
- 1 Execute Permission
File Permission In Character Format
This information about the file is displayed in the Access field when you execute stat command.
- File Type: First bit of the field mentions the type of the file.
- User Permission: 2nd, 3rd and 4th character specifies the read, write and execute permission of the user.
- Group Permission: 5th, 6th and 7th character specifies the read, write and execute permission of the group.
- Others Permission: 8th, 9th and 10th character specifies the read, write and execute permission of the others.
Display Information About File System
You can also use stat command to display the file system information as shown below.
$ stat -f / File: "/" ID: 0 Namelen: 255 Type: ext2/ext3 Blocks: Total: 2579457 Free: 1991450 Available: 1860421 Size: 4096 Inodes: Total: 1310720 Free: 1215875
Comments on this entry are closed.
@yoander (Sedlav) , Thanks for the comment. I’m glad you found this article helpful.
nice tip. I assume you can tell it is a hard link if the inodes are the same value?
simple and precise.
I wanted to know one thing. The Device attribute of that inode why they are different for file and directory (Both will be in disk only)?. Or was this taken for different devices?
Can you explain what is meant by Modify: 2009-01-01 12:07:33.000000000 -0800?Till here it is clear 2009-01-01 12:07:33.Year,month,date,hh,mm,sec and rest of the part is not clear
@vamsi – miliseconds and GMT timestamp, like if we are in india then it would be +0530
How to know the file size of a folder (directory) and its space.
Very nice.Thank you