stat, lstat - provide a shell interface to the stat(2) system call
stat [-] [-fd] [-all] [-s] [-field ...] [file1 ...]
Stat does little more than provide access to the fields in the struct
stat as defined in the stat(2) manual page. Each field that is to be
listed is specified as the field name without the leading st_. This and
the other two options are described below. All options are then applied
to the files listed. If stat is called as lstat then the lstat(2) system
call is used, otherwise symbolic links are expanded with stat(2).
If no fields are named then all fields are printed. If no files are
listed then all open filedescriptors are printed.
- If the first argument is ``-'', the list of files is assumed to come
from stdin. This is useful for things like ``ls | stat -uid
-mtime.'' -fd If an argument is a ``-'' followed by a number then
that number is used as a file descriptor whose information is to be
-all List all fields for each file.
-s Use lstat(2).
List the mode field. Similarly for ino, dev, rdev, nlink, uid, gid,
size, atime, mtime, and ctime. Under BSD derived systems you also
have blksize and blocks.
The lower case versions of these three options display the time as
an integer that is the ``seconds since 00:00 Jan 1. 1970.'' Listing
the fields with the first letter in caps causes the times to be
printed in ctime(3) format (i.e., human readable).
# Find out the number of links to each file
$ stat -nlink *.c
# sort files by age (much like ls -t)
$ stat -atime * | sort +1
# Find out which file is older in sh(1)
if test `stat -mtime $1` -lt `stat -mtime $2`; then
echo $1 is older than $2
echo $2 is older than $1
Larry McVoy (email@example.com)