xref: /dflybsd-src/usr.bin/stat/stat.1 (revision 46659ea995a07177d32017396a62278aea358894)
1*46659ea9SSascha Wildner.\"	$NetBSD: stat.1,v 1.28 2010/04/05 21:25:01 joerg Exp $
2*46659ea9SSascha Wildner.\"
39a63ce63SRobert Garrett.\" Copyright (c) 2002 The NetBSD Foundation, Inc.
49a63ce63SRobert Garrett.\" All rights reserved.
59a63ce63SRobert Garrett.\"
69a63ce63SRobert Garrett.\" This code is derived from software contributed to The NetBSD Foundation
79a63ce63SRobert Garrett.\" by Andrew Brown and Jan Schaumann.
89a63ce63SRobert Garrett.\"
99a63ce63SRobert Garrett.\" Redistribution and use in source and binary forms, with or without
109a63ce63SRobert Garrett.\" modification, are permitted provided that the following conditions
119a63ce63SRobert Garrett.\" are met:
129a63ce63SRobert Garrett.\" 1. Redistributions of source code must retain the above copyright
139a63ce63SRobert Garrett.\"    notice, this list of conditions and the following disclaimer.
149a63ce63SRobert Garrett.\" 2. Redistributions in binary form must reproduce the above copyright
159a63ce63SRobert Garrett.\"    notice, this list of conditions and the following disclaimer in the
169a63ce63SRobert Garrett.\"    documentation and/or other materials provided with the distribution.
179a63ce63SRobert Garrett.\"
189a63ce63SRobert Garrett.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
199a63ce63SRobert Garrett.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
209a63ce63SRobert Garrett.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
219a63ce63SRobert Garrett.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
229a63ce63SRobert Garrett.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
239a63ce63SRobert Garrett.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
249a63ce63SRobert Garrett.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
259a63ce63SRobert Garrett.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
269a63ce63SRobert Garrett.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
279a63ce63SRobert Garrett.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
289a63ce63SRobert Garrett.\" POSSIBILITY OF SUCH DAMAGE.
299a63ce63SRobert Garrett.\"
30*46659ea9SSascha Wildner.\" $FreeBSD: head/usr.bin/stat/stat.1 267773 2014-06-23 08:23:05Z bapt $
319a63ce63SRobert Garrett.\"
32*46659ea9SSascha Wildner.Dd February 28, 2016
339a63ce63SRobert Garrett.Dt STAT 1
349a63ce63SRobert Garrett.Os
359a63ce63SRobert Garrett.Sh NAME
369a63ce63SRobert Garrett.Nm stat ,
379a63ce63SRobert Garrett.Nm readlink
389a63ce63SRobert Garrett.Nd display file status
399a63ce63SRobert Garrett.Sh SYNOPSIS
409a63ce63SRobert Garrett.Nm
41*46659ea9SSascha Wildner.Op Fl FHLnq
429a63ce63SRobert Garrett.Op Fl f Ar format | Fl l | r | s | x
439a63ce63SRobert Garrett.Op Fl t Ar timefmt
449a63ce63SRobert Garrett.Op Ar
459a63ce63SRobert Garrett.Nm readlink
46*46659ea9SSascha Wildner.Op Fl fn
479a63ce63SRobert Garrett.Op Ar
489a63ce63SRobert Garrett.Sh DESCRIPTION
499a63ce63SRobert GarrettThe
509a63ce63SRobert Garrett.Nm
519a63ce63SRobert Garrettutility displays information about the file pointed to by
529a63ce63SRobert Garrett.Ar file .
53*46659ea9SSascha WildnerRead, write, or execute permissions of the named file are not required, but
549a63ce63SRobert Garrettall directories listed in the pathname leading to the file must be
559a63ce63SRobert Garrettsearchable.
569a63ce63SRobert GarrettIf no argument is given,
579a63ce63SRobert Garrett.Nm
589a63ce63SRobert Garrettdisplays information about the file descriptor for standard input.
599a63ce63SRobert Garrett.Pp
609a63ce63SRobert GarrettWhen invoked as
619a63ce63SRobert Garrett.Nm readlink ,
629a63ce63SRobert Garrettonly the target of the symbolic link is printed.
63*46659ea9SSascha WildnerIf the given argument is not a symbolic link and the
64*46659ea9SSascha Wildner.Fl f
65*46659ea9SSascha Wildneroption is not specified,
669a63ce63SRobert Garrett.Nm readlink
679a63ce63SRobert Garrettwill print nothing and exit with an error.
68*46659ea9SSascha WildnerIf the
69*46659ea9SSascha Wildner.Fl f
70*46659ea9SSascha Wildneroption is specified, the output is canonicalized by following every symlink
71*46659ea9SSascha Wildnerin every component of the given path recursively.
72*46659ea9SSascha Wildner.Nm readlink
73*46659ea9SSascha Wildnerwill resolve both absolute and relative paths, and return the absolute pathname
74*46659ea9SSascha Wildnercorresponding to
75*46659ea9SSascha Wildner.Ar file .
76*46659ea9SSascha WildnerIn this case, the argument does not need to be a symbolic link.
779a63ce63SRobert Garrett.Pp
789a63ce63SRobert GarrettThe information displayed is obtained by calling
799a63ce63SRobert Garrett.Xr lstat 2
809a63ce63SRobert Garrettwith the given argument and evaluating the returned structure.
81*46659ea9SSascha WildnerThe default format displays the
82*46659ea9SSascha Wildner.Fa st_dev ,
83*46659ea9SSascha Wildner.Fa st_ino ,
84*46659ea9SSascha Wildner.Fa st_mode ,
85*46659ea9SSascha Wildner.Fa st_nlink ,
86*46659ea9SSascha Wildner.Fa st_uid ,
87*46659ea9SSascha Wildner.Fa st_gid ,
88*46659ea9SSascha Wildner.Fa st_rdev ,
89*46659ea9SSascha Wildner.Fa st_size ,
90*46659ea9SSascha Wildner.Fa st_atime ,
91*46659ea9SSascha Wildner.Fa st_mtime ,
92*46659ea9SSascha Wildner.Fa st_ctime ,
93*46659ea9SSascha Wildner.Fa st_blksize ,
94*46659ea9SSascha Wildner.Fa st_blocks ,
95*46659ea9SSascha Wildnerand
96*46659ea9SSascha Wildner.Fa st_flags
97*46659ea9SSascha Wildnerfields, in that order.
989a63ce63SRobert Garrett.Pp
999a63ce63SRobert GarrettThe options are as follows:
1009a63ce63SRobert Garrett.Bl -tag -width indent
1019a63ce63SRobert Garrett.It Fl F
1029a63ce63SRobert GarrettAs in
1039a63ce63SRobert Garrett.Xr ls 1 ,
1049a63ce63SRobert Garrettdisplay a slash
1059a63ce63SRobert Garrett.Pq Ql /
1069a63ce63SRobert Garrettimmediately after each pathname that is a directory,
1079a63ce63SRobert Garrettan asterisk
1089a63ce63SRobert Garrett.Pq Ql *
1099a63ce63SRobert Garrettafter each that is executable,
1109a63ce63SRobert Garrettan at sign
1119a63ce63SRobert Garrett.Pq Ql @
1129a63ce63SRobert Garrettafter each symbolic link,
1139a63ce63SRobert Garretta percent sign
1149a63ce63SRobert Garrett.Pq Ql %
1159a63ce63SRobert Garrettafter each whiteout,
1169a63ce63SRobert Garrettan equal sign
1179a63ce63SRobert Garrett.Pq Ql =
1189a63ce63SRobert Garrettafter each socket,
1199a63ce63SRobert Garrettand a vertical bar
1209a63ce63SRobert Garrett.Pq Ql |
1219a63ce63SRobert Garrettafter each that is a FIFO.
1229a63ce63SRobert GarrettThe use of
1239a63ce63SRobert Garrett.Fl F
1249a63ce63SRobert Garrettimplies
1259a63ce63SRobert Garrett.Fl l .
126*46659ea9SSascha Wildner.It Fl H
127*46659ea9SSascha WildnerTreat each argument as the hexadecimal representation of an NFS file handle,
128*46659ea9SSascha Wildnerand use
129*46659ea9SSascha Wildner.Xr fhstat 2
130*46659ea9SSascha Wildnerinstead of
131*46659ea9SSascha Wildner.Xr lstat 2 .
132*46659ea9SSascha WildnerThis requires root privileges.
1339a63ce63SRobert Garrett.It Fl L
1349a63ce63SRobert GarrettUse
1359a63ce63SRobert Garrett.Xr stat 2
1369a63ce63SRobert Garrettinstead of
1379a63ce63SRobert Garrett.Xr lstat 2 .
1389a63ce63SRobert GarrettThe information reported by
1399a63ce63SRobert Garrett.Nm
1409a63ce63SRobert Garrettwill refer to the target of
1419a63ce63SRobert Garrett.Ar file ,
1429a63ce63SRobert Garrettif file is a symbolic link, and not to
1439a63ce63SRobert Garrett.Ar file
1449a63ce63SRobert Garrettitself.
145*46659ea9SSascha WildnerIf the link is broken or the target does not exist,
146*46659ea9SSascha Wildnerfall back on
147*46659ea9SSascha Wildner.Xr lstat 2
148*46659ea9SSascha Wildnerand report information about the link.
1499a63ce63SRobert Garrett.It Fl n
1509a63ce63SRobert GarrettDo not force a newline to appear at the end of each piece of output.
1519a63ce63SRobert Garrett.It Fl q
1529a63ce63SRobert GarrettSuppress failure messages if calls to
1539a63ce63SRobert Garrett.Xr stat 2
1549a63ce63SRobert Garrettor
1559a63ce63SRobert Garrett.Xr lstat 2
1569a63ce63SRobert Garrettfail.
1579a63ce63SRobert GarrettWhen run as
1589a63ce63SRobert Garrett.Nm readlink ,
1599a63ce63SRobert Garretterror messages are automatically suppressed.
1609a63ce63SRobert Garrett.It Fl f Ar format
1619a63ce63SRobert GarrettDisplay information using the specified format.
1629a63ce63SRobert GarrettSee the
163d764aeecSSascha Wildner.Sx Formats
1649a63ce63SRobert Garrettsection for a description of valid formats.
1659a63ce63SRobert Garrett.It Fl l
1669a63ce63SRobert GarrettDisplay output in
1679a63ce63SRobert Garrett.Nm ls Fl lT
1689a63ce63SRobert Garrettformat.
1699a63ce63SRobert Garrett.It Fl r
1709a63ce63SRobert GarrettDisplay raw information.
1719a63ce63SRobert GarrettThat is, for all the fields in the
1729a63ce63SRobert Garrett.Vt stat
1739a63ce63SRobert Garrettstructure,
1749a63ce63SRobert Garrettdisplay the raw, numerical value (for example, times in seconds since the
1759a63ce63SRobert Garrettepoch, etc.).
1769a63ce63SRobert Garrett.It Fl s
1779a63ce63SRobert GarrettDisplay information in
178*46659ea9SSascha Wildner.Dq shell output
179*46659ea9SSascha Wildnerformat,
1809a63ce63SRobert Garrettsuitable for initializing variables.
1819a63ce63SRobert Garrett.It Fl x
1829a63ce63SRobert GarrettDisplay information in a more verbose way as known from some
1839a63ce63SRobert Garrett.Tn Linux
1849a63ce63SRobert Garrettdistributions.
1859a63ce63SRobert Garrett.It Fl t Ar timefmt
1869a63ce63SRobert GarrettDisplay timestamps using the specified format.
1879a63ce63SRobert GarrettThis format is
1889a63ce63SRobert Garrettpassed directly to
1899a63ce63SRobert Garrett.Xr strftime 3 .
1909a63ce63SRobert Garrett.El
1919a63ce63SRobert Garrett.Ss Formats
1929a63ce63SRobert GarrettFormat strings are similar to
1939a63ce63SRobert Garrett.Xr printf 3
1949a63ce63SRobert Garrettformats in that they start with
1959a63ce63SRobert Garrett.Cm % ,
1969a63ce63SRobert Garrettare then followed by a sequence of formatting characters, and end in
1979a63ce63SRobert Garretta character that selects the field of the
1989a63ce63SRobert Garrett.Vt "struct stat"
1999a63ce63SRobert Garrettwhich is to be formatted.
2009a63ce63SRobert GarrettIf the
2019a63ce63SRobert Garrett.Cm %
2029a63ce63SRobert Garrettis immediately followed by one of
2039a63ce63SRobert Garrett.Cm n , t , % ,
2049a63ce63SRobert Garrettor
2059a63ce63SRobert Garrett.Cm @ ,
2069a63ce63SRobert Garrettthen a newline character, a tab character, a percent character,
2079a63ce63SRobert Garrettor the current file number is printed, otherwise the string is
2089a63ce63SRobert Garrettexamined for the following:
2099a63ce63SRobert Garrett.Pp
2109a63ce63SRobert GarrettAny of the following optional flags:
2119a63ce63SRobert Garrett.Bl -tag -width indent
2129a63ce63SRobert Garrett.It Cm #
2139a63ce63SRobert GarrettSelects an alternate output form for octal and hexadecimal output.
2149a63ce63SRobert GarrettNon-zero octal output will have a leading zero, and non-zero
2159a63ce63SRobert Garretthexadecimal output will have
2169a63ce63SRobert Garrett.Dq Li 0x
2179a63ce63SRobert Garrettprepended to it.
2189a63ce63SRobert Garrett.It Cm +
2199a63ce63SRobert GarrettAsserts that a sign indicating whether a number is positive or negative
2209a63ce63SRobert Garrettshould always be printed.
2219a63ce63SRobert GarrettNon-negative numbers are not usually printed
2229a63ce63SRobert Garrettwith a sign.
2239a63ce63SRobert Garrett.It Cm -
2249a63ce63SRobert GarrettAligns string output to the left of the field, instead of to the right.
2259a63ce63SRobert Garrett.It Cm 0
2269a63ce63SRobert GarrettSets the fill character for left padding to the
2279a63ce63SRobert Garrett.Ql 0
2289a63ce63SRobert Garrettcharacter, instead of a space.
2299a63ce63SRobert Garrett.It space
2309a63ce63SRobert GarrettReserves a space at the front of non-negative signed output fields.
2319a63ce63SRobert GarrettA
2329a63ce63SRobert Garrett.Sq Cm +
2339a63ce63SRobert Garrettoverrides a space if both are used.
2349a63ce63SRobert Garrett.El
2359a63ce63SRobert Garrett.Pp
2369a63ce63SRobert GarrettThen the following fields:
2379a63ce63SRobert Garrett.Bl -tag -width indent
2389a63ce63SRobert Garrett.It Ar size
2399a63ce63SRobert GarrettAn optional decimal digit string specifying the minimum field width.
2409a63ce63SRobert Garrett.It Ar prec
2419a63ce63SRobert GarrettAn optional precision composed of a decimal point
2429a63ce63SRobert Garrett.Sq Cm \&.
2439a63ce63SRobert Garrettand a decimal digit string that indicates the maximum string length,
2449a63ce63SRobert Garrettthe number of digits to appear after the decimal point in floating point
2459a63ce63SRobert Garrettoutput, or the minimum number of digits to appear in numeric output.
2469a63ce63SRobert Garrett.It Ar fmt
2479a63ce63SRobert GarrettAn optional output format specifier which is one of
2489a63ce63SRobert Garrett.Cm D , O , U , X , F ,
2499a63ce63SRobert Garrettor
2509a63ce63SRobert Garrett.Cm S .
2519a63ce63SRobert GarrettThese represent signed decimal output, octal output, unsigned decimal
2529a63ce63SRobert Garrettoutput, hexadecimal output, floating point output, and string output,
2539a63ce63SRobert Garrettrespectively.
2549a63ce63SRobert GarrettSome output formats do not apply to all fields.
2559a63ce63SRobert GarrettFloating point output only applies to
2569a63ce63SRobert Garrett.Vt timespec
2579a63ce63SRobert Garrettfields (the
2589a63ce63SRobert Garrett.Cm a , m ,
2599a63ce63SRobert Garrettand
2609a63ce63SRobert Garrett.Cm c
2619a63ce63SRobert Garrettfields).
2629a63ce63SRobert Garrett.Pp
2639a63ce63SRobert GarrettThe special output specifier
2649a63ce63SRobert Garrett.Cm S
2659a63ce63SRobert Garrettmay be used to indicate that the output, if
2669a63ce63SRobert Garrettapplicable, should be in string format.
2679a63ce63SRobert GarrettMay be used in combination with:
2689a63ce63SRobert Garrett.Bl -tag -width indent
2699a63ce63SRobert Garrett.It Cm amc
2709a63ce63SRobert GarrettDisplay date in
2719a63ce63SRobert Garrett.Xr strftime 3
2729a63ce63SRobert Garrettformat.
2739a63ce63SRobert Garrett.It Cm dr
2749a63ce63SRobert GarrettDisplay actual device name.
275*46659ea9SSascha Wildner.It Cm f
276*46659ea9SSascha WildnerDisplay the flags of
277*46659ea9SSascha Wildner.Ar file
278*46659ea9SSascha Wildneras in
279*46659ea9SSascha Wildner.Nm ls Fl lTdo .
2809a63ce63SRobert Garrett.It Cm gu
2819a63ce63SRobert GarrettDisplay group or user name.
2829a63ce63SRobert Garrett.It Cm p
2839a63ce63SRobert GarrettDisplay the mode of
2849a63ce63SRobert Garrett.Ar file
2859a63ce63SRobert Garrettas in
2869a63ce63SRobert Garrett.Nm ls Fl lTd .
2879a63ce63SRobert Garrett.It Cm N
2889a63ce63SRobert GarrettDisplays the name of
2899a63ce63SRobert Garrett.Ar file .
2909a63ce63SRobert Garrett.It Cm T
2919a63ce63SRobert GarrettDisplays the type of
2929a63ce63SRobert Garrett.Ar file .
2939a63ce63SRobert Garrett.It Cm Y
2949a63ce63SRobert GarrettInsert a
2959a63ce63SRobert Garrett.Dq Li " -\*[Gt] "
2969a63ce63SRobert Garrettinto the output.
2979a63ce63SRobert GarrettNote that the default output format
2989a63ce63SRobert Garrettfor
2999a63ce63SRobert Garrett.Cm Y
3009a63ce63SRobert Garrettis a string, but if specified explicitly, these four characters are
3019a63ce63SRobert Garrettprepended.
3029a63ce63SRobert Garrett.El
3039a63ce63SRobert Garrett.It Ar sub
3049a63ce63SRobert GarrettAn optional sub field specifier (high, middle, low).
3059a63ce63SRobert GarrettOnly applies to
3069a63ce63SRobert Garrettthe
3079a63ce63SRobert Garrett.Cm p , d , r ,
3089a63ce63SRobert Garrettand
3099a63ce63SRobert Garrett.Cm T
3109a63ce63SRobert Garrettoutput formats.
3119a63ce63SRobert GarrettIt can be one of the following:
3129a63ce63SRobert Garrett.Bl -tag -width indent
3139a63ce63SRobert Garrett.It Cm H
3149a63ce63SRobert Garrett.Dq High
315*46659ea9SSascha Wildner\[em]
3169a63ce63SRobert Garrettspecifies the major number for devices from
3179a63ce63SRobert Garrett.Cm r
3189a63ce63SRobert Garrettor
3199a63ce63SRobert Garrett.Cm d ,
3209a63ce63SRobert Garrettthe
3219a63ce63SRobert Garrett.Dq user
3229a63ce63SRobert Garrettbits for permissions from the string form of
3239a63ce63SRobert Garrett.Cm p ,
3249a63ce63SRobert Garrettthe file
3259a63ce63SRobert Garrett.Dq type
3269a63ce63SRobert Garrettbits from the numeric forms of
3279a63ce63SRobert Garrett.Cm p ,
3289a63ce63SRobert Garrettand the long output form of
3299a63ce63SRobert Garrett.Cm T .
3309a63ce63SRobert Garrett.It Cm L
3319a63ce63SRobert Garrett.Dq Low
332*46659ea9SSascha Wildner\[em]
3339a63ce63SRobert Garrettspecifies the minor number for devices from
3349a63ce63SRobert Garrett.Cm r
3359a63ce63SRobert Garrettor
3369a63ce63SRobert Garrett.Cm d ,
3379a63ce63SRobert Garrettthe
3389a63ce63SRobert Garrett.Dq other
3399a63ce63SRobert Garrettbits for permissions from the string form of
3409a63ce63SRobert Garrett.Cm p ,
3419a63ce63SRobert Garrettthe
3429a63ce63SRobert Garrett.Dq user ,
3439a63ce63SRobert Garrett.Dq group ,
3449a63ce63SRobert Garrettand
3459a63ce63SRobert Garrett.Dq other
3469a63ce63SRobert Garrettbits from the numeric forms of
3479a63ce63SRobert Garrett.Cm p ,
3489a63ce63SRobert Garrettand the
3499a63ce63SRobert Garrett.Nm ls Fl F
3509a63ce63SRobert Garrettstyle output character for file type when used with
3519a63ce63SRobert Garrett.Cm T
3529a63ce63SRobert Garrett(the use of
3539a63ce63SRobert Garrett.Cm L
3549a63ce63SRobert Garrettfor this is optional).
3559a63ce63SRobert Garrett.It Cm M
3569a63ce63SRobert Garrett.Dq Middle
357*46659ea9SSascha Wildner\[em]
3589a63ce63SRobert Garrettspecifies the
3599a63ce63SRobert Garrett.Dq group
3609a63ce63SRobert Garrettbits for permissions from the
3619a63ce63SRobert Garrettstring output form of
3629a63ce63SRobert Garrett.Cm p ,
3639a63ce63SRobert Garrettor the
3649a63ce63SRobert Garrett.Dq suid ,
3659a63ce63SRobert Garrett.Dq sgid ,
3669a63ce63SRobert Garrettand
3679a63ce63SRobert Garrett.Dq sticky
3689a63ce63SRobert Garrettbits for the numeric forms of
3699a63ce63SRobert Garrett.Cm p .
3709a63ce63SRobert Garrett.El
3719a63ce63SRobert Garrett.It Ar datum
3729a63ce63SRobert GarrettA required field specifier, being one of the following:
3739a63ce63SRobert Garrett.Bl -tag -width indent
3749a63ce63SRobert Garrett.It Cm d
3759a63ce63SRobert GarrettDevice upon which
3769a63ce63SRobert Garrett.Ar file
377*46659ea9SSascha Wildnerresides
378*46659ea9SSascha Wildner.Pq Fa st_dev .
3799a63ce63SRobert Garrett.It Cm i
3809a63ce63SRobert Garrett.Ar file Ns 's
381*46659ea9SSascha Wildnerinode number
382*46659ea9SSascha Wildner.Pq Fa st_ino .
3839a63ce63SRobert Garrett.It Cm p
384*46659ea9SSascha WildnerFile type and permissions
385*46659ea9SSascha Wildner.Pq Fa st_mode .
3869a63ce63SRobert Garrett.It Cm l
3879a63ce63SRobert GarrettNumber of hard links to
388*46659ea9SSascha Wildner.Ar file
389*46659ea9SSascha Wildner.Pq Fa st_nlink .
3909a63ce63SRobert Garrett.It Cm u , g
3919a63ce63SRobert GarrettUser ID and group ID of
3929a63ce63SRobert Garrett.Ar file Ns 's
393*46659ea9SSascha Wildnerowner
394*46659ea9SSascha Wildner.Pq Fa st_uid , st_gid .
3959a63ce63SRobert Garrett.It Cm r
396*46659ea9SSascha WildnerDevice number for character and block device special files
397*46659ea9SSascha Wildner.Pq Fa st_rdev .
39854af47c9SAntonio Huete Jimenez.It Cm a , m , c
3999a63ce63SRobert GarrettThe time
4009a63ce63SRobert Garrett.Ar file
401*46659ea9SSascha Wildnerwas last accessed or modified, or when the inode was last changed
402*46659ea9SSascha Wildner.Pq Fa st_atime , st_mtime , st_ctime .
4039a63ce63SRobert Garrett.It Cm z
4049a63ce63SRobert GarrettThe size of
4059a63ce63SRobert Garrett.Ar file
406*46659ea9SSascha Wildnerin bytes
407*46659ea9SSascha Wildner.Pq Fa st_size .
4089a63ce63SRobert Garrett.It Cm b
4099a63ce63SRobert GarrettNumber of blocks allocated for
410*46659ea9SSascha Wildner.Ar file
411*46659ea9SSascha Wildner.Pq Fa st_blocks .
4129a63ce63SRobert Garrett.It Cm k
413*46659ea9SSascha WildnerOptimal file system I/O operation block size
414*46659ea9SSascha Wildner.Pq Fa st_blksize .
4159a63ce63SRobert Garrett.It Cm f
4169a63ce63SRobert GarrettUser defined flags for
4179a63ce63SRobert Garrett.Ar file .
4189a63ce63SRobert Garrett.It Cm v
419*46659ea9SSascha WildnerInode generation number
420*46659ea9SSascha Wildner.Pq Fa st_gen .
4219a63ce63SRobert Garrett.El
4229a63ce63SRobert Garrett.Pp
423*46659ea9SSascha WildnerThe following five field specifiers are not drawn directly from the
4249a63ce63SRobert Garrettdata in
4259a63ce63SRobert Garrett.Vt "struct stat" ,
4269a63ce63SRobert Garrettbut are:
4279a63ce63SRobert Garrett.Bl -tag -width indent
4289a63ce63SRobert Garrett.It Cm N
4299a63ce63SRobert GarrettThe name of the file.
430*46659ea9SSascha Wildner.It Cm R
431*46659ea9SSascha WildnerThe absolute pathname corresponding to the file.
4329a63ce63SRobert Garrett.It Cm T
4339a63ce63SRobert GarrettThe file type, either as in
4349a63ce63SRobert Garrett.Nm ls Fl F
4359a63ce63SRobert Garrettor in a more descriptive form if the
4369a63ce63SRobert Garrett.Ar sub
4379a63ce63SRobert Garrettfield specifier
4389a63ce63SRobert Garrett.Cm H
4399a63ce63SRobert Garrettis given.
4409a63ce63SRobert Garrett.It Cm Y
4419a63ce63SRobert GarrettThe target of a symbolic link.
4429a63ce63SRobert Garrett.It Cm Z
4439a63ce63SRobert GarrettExpands to
4449a63ce63SRobert Garrett.Dq major,minor
4459a63ce63SRobert Garrettfrom the
4469a63ce63SRobert Garrett.Va rdev
4479a63ce63SRobert Garrettfield for character or block
4489a63ce63SRobert Garrettspecial devices and gives size output for all others.
4499a63ce63SRobert Garrett.El
4509a63ce63SRobert Garrett.El
4519a63ce63SRobert Garrett.Pp
4529a63ce63SRobert GarrettOnly the
4539a63ce63SRobert Garrett.Cm %
4549a63ce63SRobert Garrettand the field specifier are required.
4559a63ce63SRobert GarrettMost field specifiers default to
4569a63ce63SRobert Garrett.Cm U
4579a63ce63SRobert Garrettas an output form, with the
4589a63ce63SRobert Garrettexception of
4599a63ce63SRobert Garrett.Cm p
4609a63ce63SRobert Garrettwhich defaults to
461*46659ea9SSascha Wildner.Cm O ;
4629a63ce63SRobert Garrett.Cm a , m ,
4639a63ce63SRobert Garrettand
4649a63ce63SRobert Garrett.Cm c
4659a63ce63SRobert Garrettwhich default to
466*46659ea9SSascha Wildner.Cm D ;
4679a63ce63SRobert Garrettand
4689a63ce63SRobert Garrett.Cm Y , T ,
4699a63ce63SRobert Garrettand
4709a63ce63SRobert Garrett.Cm N
4719a63ce63SRobert Garrettwhich default to
4729a63ce63SRobert Garrett.Cm S .
47319fe1c42SSascha Wildner.Sh EXIT STATUS
47419fe1c42SSascha Wildner.Ex -std stat readlink
4759a63ce63SRobert Garrett.Sh EXAMPLES
476*46659ea9SSascha WildnerIf no options are specified, the default format is
477*46659ea9SSascha Wildner"%d %i %Sp %l %Su %Sg %r %z \e"%Sa\e" \e"%Sm\e" \e"%Sc\e" %k %b %#Xf %N".
478*46659ea9SSascha Wildner.Bd -literal -offset indent
479*46659ea9SSascha Wildner\*[Gt] stat /tmp/bar
480*46659ea9SSascha Wildner0 78852 -rw-r--r-- 1 root wheel 0 0 "Jul  8 10:26:03 2004" "Jul  8 10:26:03 2004" "Jul  8 10:28:13 2004" 16384 0 0 /tmp/bar
481*46659ea9SSascha Wildner.Ed
482*46659ea9SSascha Wildner.Pp
4839a63ce63SRobert GarrettGiven a symbolic link
484*46659ea9SSascha Wildner.Dq foo
4859a63ce63SRobert Garrettthat points from
4869a63ce63SRobert Garrett.Pa /tmp/foo
4879a63ce63SRobert Garrettto
4889a63ce63SRobert Garrett.Pa / ,
4899a63ce63SRobert Garrettyou would use
4909a63ce63SRobert Garrett.Nm
4919a63ce63SRobert Garrettas follows:
4929a63ce63SRobert Garrett.Bd -literal -offset indent
4939a63ce63SRobert Garrett\*[Gt] stat -F /tmp/foo
4949a63ce63SRobert Garrettlrwxrwxrwx 1 jschauma cs 1 Apr 24 16:37:28 2002 /tmp/foo@ -\*[Gt] /
4959a63ce63SRobert Garrett
4969a63ce63SRobert Garrett\*[Gt] stat -LF /tmp/foo
4979a63ce63SRobert Garrettdrwxr-xr-x 16 root wheel 512 Apr 19 10:57:54 2002 /tmp/foo/
4989a63ce63SRobert Garrett.Ed
4999a63ce63SRobert Garrett.Pp
5009a63ce63SRobert GarrettTo initialize some shell variables, you could use the
5019a63ce63SRobert Garrett.Fl s
5029a63ce63SRobert Garrettflag as follows:
5039a63ce63SRobert Garrett.Bd -literal -offset indent
5049a63ce63SRobert Garrett\*[Gt] csh
5059a63ce63SRobert Garrett% eval set `stat -s .cshrc`
5069a63ce63SRobert Garrett% echo $st_size $st_mtimespec
5079a63ce63SRobert Garrett1148 1015432481
5089a63ce63SRobert Garrett
5099a63ce63SRobert Garrett\*[Gt] sh
5109a63ce63SRobert Garrett$ eval $(stat -s .profile)
5119a63ce63SRobert Garrett$ echo $st_size $st_mtimespec
5129a63ce63SRobert Garrett1148 1015432481
5139a63ce63SRobert Garrett.Ed
5149a63ce63SRobert Garrett.Pp
515*46659ea9SSascha WildnerIn order to get a list of file types including files pointed to if the
5169a63ce63SRobert Garrettfile is a symbolic link, you could use the following format:
5179a63ce63SRobert Garrett.Bd -literal -offset indent
5189a63ce63SRobert Garrett$ stat -f "%N: %HT%SY" /tmp/*
5199a63ce63SRobert Garrett/tmp/bar: Symbolic Link -\*[Gt] /tmp/foo
5209a63ce63SRobert Garrett/tmp/output25568: Regular File
5219a63ce63SRobert Garrett/tmp/blah: Directory
5229a63ce63SRobert Garrett/tmp/foo: Symbolic Link -\*[Gt] /
5239a63ce63SRobert Garrett.Ed
5249a63ce63SRobert Garrett.Pp
5259a63ce63SRobert GarrettIn order to get a list of the devices, their types and the major and minor
5269a63ce63SRobert Garrettdevice numbers, formatted with tabs and linebreaks, you could use the
5279a63ce63SRobert Garrettfollowing format:
5289a63ce63SRobert Garrett.Bd -literal -offset indent
5299a63ce63SRobert Garrettstat -f "Name: %N%n%tType: %HT%n%tMajor: %Hr%n%tMinor: %Lr%n%n" /dev/*
5309a63ce63SRobert Garrett[...]
531ad9f8794SSascha WildnerName: /dev/xpt0
532ad9f8794SSascha Wildner        Type: Character Device
533ad9f8794SSascha Wildner        Major: 28
534ad9f8794SSascha Wildner        Minor: 0
5359a63ce63SRobert Garrett
5369a63ce63SRobert GarrettName: /dev/zero
5379a63ce63SRobert Garrett        Type: Character Device
5389a63ce63SRobert Garrett        Major: 2
5399a63ce63SRobert Garrett        Minor: 12
5409a63ce63SRobert Garrett.Ed
5419a63ce63SRobert Garrett.Pp
5429a63ce63SRobert GarrettIn order to determine the permissions set on a file separately, you could use
5439a63ce63SRobert Garrettthe following format:
5449a63ce63SRobert Garrett.Bd -literal -offset indent
5459a63ce63SRobert Garrett\*[Gt] stat -f "%Sp -\*[Gt] owner=%SHp group=%SMp other=%SLp" .
5469a63ce63SRobert Garrettdrwxr-xr-x -\*[Gt] owner=rwx group=r-x other=r-x
5479a63ce63SRobert Garrett.Ed
5489a63ce63SRobert Garrett.Pp
5499a63ce63SRobert GarrettIn order to determine the three files that have been modified most recently,
5509a63ce63SRobert Garrettyou could use the following format:
5519a63ce63SRobert Garrett.Bd -literal -offset indent
5529a63ce63SRobert Garrett\*[Gt] stat -f "%m%t%Sm %N" /tmp/* | sort -rn | head -3 | cut -f2-
5539a63ce63SRobert GarrettApr 25 11:47:00 2002 /tmp/blah
5549a63ce63SRobert GarrettApr 25 10:36:34 2002 /tmp/bar
5559a63ce63SRobert GarrettApr 24 16:47:35 2002 /tmp/foo
5569a63ce63SRobert Garrett.Ed
557*46659ea9SSascha Wildner.Pp
558*46659ea9SSascha WildnerTo display a file's modification time:
559*46659ea9SSascha Wildner.Bd -literal -offset indent
560*46659ea9SSascha Wildner\*[Gt] stat -f %m /tmp/foo
561*46659ea9SSascha Wildner1177697733
562*46659ea9SSascha Wildner.Ed
563*46659ea9SSascha Wildner.Pp
564*46659ea9SSascha WildnerTo display the same modification time in a readable format:
565*46659ea9SSascha Wildner.Bd -literal -offset indent
566*46659ea9SSascha Wildner\*[Gt] stat -f %Sm /tmp/foo
567*46659ea9SSascha WildnerApr 27 11:15:33 2007
568*46659ea9SSascha Wildner.Ed
569*46659ea9SSascha Wildner.Pp
570*46659ea9SSascha WildnerTo display the same modification time in a readable and sortable format:
571*46659ea9SSascha Wildner.Bd -literal -offset indent
572*46659ea9SSascha Wildner\*[Gt] stat -f %Sm -t %Y%m%d%H%M%S /tmp/foo
573*46659ea9SSascha Wildner20070427111533
574*46659ea9SSascha Wildner.Ed
575*46659ea9SSascha Wildner.Pp
576*46659ea9SSascha WildnerTo display the same in UTC:
577*46659ea9SSascha Wildner.Bd -literal -offset indent
578*46659ea9SSascha Wildner\*[Gt] sh
579*46659ea9SSascha Wildner$ TZ= stat -f %Sm -t %Y%m%d%H%M%S /tmp/foo
580*46659ea9SSascha Wildner20070427181533
581*46659ea9SSascha Wildner.Ed
5829a63ce63SRobert Garrett.Sh SEE ALSO
5839a63ce63SRobert Garrett.Xr file 1 ,
5849a63ce63SRobert Garrett.Xr ls 1 ,
5859a63ce63SRobert Garrett.Xr lstat 2 ,
5869a63ce63SRobert Garrett.Xr readlink 2 ,
5879a63ce63SRobert Garrett.Xr stat 2 ,
5889a63ce63SRobert Garrett.Xr printf 3 ,
5899a63ce63SRobert Garrett.Xr strftime 3
5909a63ce63SRobert Garrett.Sh HISTORY
5919a63ce63SRobert GarrettThe
5929a63ce63SRobert Garrett.Nm
5939a63ce63SRobert Garrettutility appeared in
594d542b1f4SSimon Schubert.Nx 1.6
595d542b1f4SSimon Schubertand
596d542b1f4SSimon Schubert.Fx 4.10 .
5979a63ce63SRobert Garrett.Sh AUTHORS
5989a63ce63SRobert Garrett.An -nosplit
5999a63ce63SRobert GarrettThe
6009a63ce63SRobert Garrett.Nm
6019a63ce63SRobert Garrettutility was written by
602b4f25088SFranco Fichtner.An Andrew Brown Aq Mt atatat@NetBSD.org .
6039a63ce63SRobert GarrettThis man page was written by
604b4f25088SFranco Fichtner.An Jan Schaumann Aq Mt jschauma@NetBSD.org .
605