xref: /freebsd/usr.bin/du/du.1 (revision b985c9ca)
1.\" Copyright (c) 1990, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.Dd April 29, 2024
29.Dt DU 1
30.Os
31.Sh NAME
32.Nm du
33.Nd display disk usage statistics
34.Sh SYNOPSIS
35.Nm
36.Op Fl -libxo
37.Op Fl Aclnx
38.Op Fl H | L | P
39.Op Fl g | h | k | m
40.Op Fl a | s | d Ar depth
41.Op Fl B Ar blocksize
42.Op Fl I Ar mask
43.Op Fl t Ar threshold
44.Op Ar
45.Sh DESCRIPTION
46The
47.Nm
48utility displays the file system block usage for each file argument
49and for each directory in the file hierarchy rooted in each directory
50argument.
51If no file is specified, the block usage of the hierarchy rooted in
52the current directory is displayed.
53.Pp
54The options are as follows:
55.Bl -tag -width indent
56.It Fl -libxo
57Generate output via
58.Xr libxo 3
59in a selection of different human and machine readable formats.
60See
61.Xr xo_parse_args 3
62for details on command line arguments.
63.It Fl A
64Display the apparent size instead of the disk usage.
65This can be helpful when operating on compressed volumes or sparse files.
66.It Fl B Ar blocksize
67Calculate block counts in
68.Ar blocksize
69byte blocks.
70This is different from the
71.Fl h , k , m ,
72.Fl Fl si
73and
74.Fl g
75options or setting
76.Ev BLOCKSIZE
77and gives an estimate of how much space the examined file hierarchy would
78require on a filesystem with the given
79.Ar blocksize .
80Unless in
81.Fl A
82mode,
83.Ar blocksize
84is rounded up to the next multiple of 512.
85.It Fl H
86Symbolic links on the command line are followed, symbolic links in file
87hierarchies are not followed.
88.It Fl I Ar mask
89Ignore files and directories matching the specified
90.Ar mask .
91.It Fl L
92Symbolic links on the command line and in file hierarchies are followed.
93.It Fl P
94No symbolic links are followed.
95This is the default.
96.It Fl a
97Display an entry for each file in a file hierarchy.
98.It Fl c
99Display a grand total.
100.It Fl d Ar depth
101Display an entry for all files and directories
102.Ar depth
103directories deep.
104.It Fl g
105Display block counts in 1073741824-byte (1 GiB) blocks.
106.It Fl h
107.Dq Human-readable
108output.
109Use unit suffixes: Byte, Kilobyte, Megabyte,
110Gigabyte, Terabyte and Petabyte based on powers of 1024.
111.It Fl k
112Display block counts in 1024-byte (1 kiB) blocks.
113.It Fl l
114If a file has multiple hard links, count its size multiple times.
115The default behavior of
116.Nm
117is to count files with multiple hard links only once.
118When the
119.Fl l
120option is specified, the hard link checks are disabled, and these files
121are counted (and displayed) as many times as they are found.
122.It Fl m
123Display block counts in 1048576-byte (1 MiB) blocks.
124.It Fl n
125Ignore files and directories with user
126.Dq nodump
127flag
128.Pq Dv UF_NODUMP
129set.
130.It Fl r
131Generate messages about directories that cannot be read, files
132that cannot be opened, and so on.
133This is the default case.
134This option exists solely for conformance with
135.St -xpg4 .
136.It Fl s
137Display an entry for each specified file.
138(Equivalent to
139.Fl d Li 0 )
140.It Fl Fl si
141.Dq Human-readable
142output.
143Use unit suffixes: Byte, Kilobyte, Megabyte,
144Gigabyte, Terabyte and Petabyte based on powers of 1000.
145.It Fl t Ar threshold
146Display only entries for which size exceeds
147.Ar threshold .
148If
149.Ar threshold
150is negative, display only entries for which size is less than the absolute
151value of
152.Ar threshold .
153.It Fl x
154File system mount points are not traversed.
155.El
156.Pp
157The
158.Nm
159utility counts the storage used by symbolic links and not the files they
160reference unless the
161.Fl H
162or
163.Fl L
164option is specified.
165If either the
166.Fl H
167or
168.Fl L
169option is specified, storage used by any symbolic links which are
170followed is not counted (or displayed).
171The
172.Fl H ,
173.Fl L
174and
175.Fl P
176options override each other and the command's actions are determined
177by the last one specified.
178.Pp
179The
180.Fl h , k , m
181and
182.Fl Fl si
183options all override each other; the last one specified determines
184the block counts used.
185.Sh ENVIRONMENT
186.Bl -tag -width BLOCKSIZE
187.It Ev BLOCKSIZE
188If the environment variable
189.Ev BLOCKSIZE
190is set, and the
191.Fl h , k , m
192or
193.Fl Fl si
194options are not specified, the block counts will be displayed in units of
195that block size.
196If
197.Ev BLOCKSIZE
198is not set, and the
199.Fl h , k , m
200or
201.Fl Fl si
202options are not specified, the block counts will be displayed in 512-byte
203blocks.
204.El
205.Sh EXAMPLES
206Show disk usage for all files in the current directory.
207Output is in human-readable form:
208.Pp
209.Dl # du -ah
210.Pp
211Summarize disk usage in the current directory:
212.Pp
213.Dl # du -hs
214.Pp
215Summarize disk usage for a specific directory:
216.Pp
217.Dl # du -hs /home
218.Pp
219Show name and size of all C files in a specific directory.
220Also display a grand total at the end:
221.Pp
222.Dl # du -ch /usr/src/sys/kern/*.c
223.Sh SEE ALSO
224.Xr df 1 ,
225.Xr chflags 2 ,
226.Xr fts 3 ,
227.Xr libxo 3 ,
228.Xr xo_parse_args 3 ,
229.Xr symlink 7 ,
230.Xr quot 8
231.Sh STANDARDS
232The
233.Nm
234utility is compliant with the
235.St -p1003.1-2008
236specification.
237.Pp
238The flags
239.Op Fl cdhP ,
240as well as the
241.Ev BLOCKSIZE
242environment variable,
243are extensions to that specification.
244.Pp
245The flag
246.Op Fl r
247is accepted but ignored, for compatibility with systems implementing
248the obsolete
249.St -xcu5
250standard.
251.Sh HISTORY
252The
253.Nm
254utility and its
255.Fl a
256and
257.Fl s
258options first appeared in
259.At v1 .
260.Pp
261The
262.Fl r
263option first appeared in
264.At III
265and is available since
266.Fx 3.5 .
267The
268.Fl k
269and
270.Fl x
271options first appeared in
272.Bx 4.3 Reno
273and
274.Fl H
275in
276.Bx 4.4 .
277The
278.Fl c
279and
280.Fl L
281options first appeared in the GNU fileutils;
282.Fl L
283and
284.Fl P
285are available since
286.Bx 4.4 Lite1 ,
287.Fl c
288since
289.Fx 2.2.6 .
290The
291.Fl d
292option first appeared in
293.Fx 2.2 ,
294.Fl h
295first appeared in
296.Fx 4.0 .
297.Sh AUTHORS
298.An -nosplit
299This version of
300.Nm
301was written by
302.An Chris Newcomb
303for
304.Bx 4.3 Reno
305in 1989.
306