Getting Information About Files
Problem
You need more information about a file, such as what it is, who owns it, if it’s executable, how many hard links it has, or when it was last accessed or changed.
Solution
Use the ls, stat, file, or find commands.
$ touch /tmp/sample_file $ ls /tmp/sample_file /tmp/sample_file $ ls -l /tmp/sample_file -rw-r--r-- 1 jp jp 0 Dec 18 15:03 /tmp/sample_file $ stat /tmp/sample_file File: "/tmp/sample_file" Size: 0 Blocks: 0 IO Block: 4096 Regular File Device: 303h/771d Inode: 2310201 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 501/ jp) Gid: ( 501/ jp) Access: Sun Dec 18 15:03:35 2005 Modify: Sun Dec 18 15:03:35 2005 Change: Sun Dec 18 15:03:42 2005 $ file /tmp/sample_file /tmp/sample_file: empty $ file -b /tmp/sample_file empty $ echo '#!/bin/bash -' > /tmp/sample_file $ file /tmp/sample_file /tmp/sample_file: Bourne-Again shell script text executable $ file -b /tmp/sample_file Bourne-Again shell script text executable
For much more on the find command, see all of Chapter 9.
Discussion
The command ls shows only filenames, while -l provides more details about each file. ls has
many options; consult the manpage on your system for the ones it supports. Useful options include:ls
- -a
Do not hide files starting with . (dot)
- -F
Show the type of file with one of these trailing type designators: /*@%=|
- -l
Long listing
- -L
Show information about the linked file, rather than the symbolic link itself
- -Q
Quote names (GNU extension, not supported on all systems)
- -r
Reverse sort order ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access