freebsd-dev/bin/df/df.1

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

309 lines
8.7 KiB
Groff
Raw Normal View History

.\"-
1994-05-26 06:18:55 +00:00
.\" Copyright (c) 1989, 1990, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
1994-05-26 06:18:55 +00:00
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)df.1 8.3 (Berkeley) 5/8/95
1999-08-27 23:15:48 +00:00
.\" $FreeBSD$
1994-05-26 06:18:55 +00:00
.\"
fs/msdosfs: add tracking of free root directory entries This update implements tallying of free directory entries during create, delete, or rename operations on FAT12 and FAT16 file systems. Prior to this change, the total number of root directory entries was reported as number of inodes, but 0 as the number of free inodes, causing system health monitoring software to warn about a suspected disk full issue. The FAT12 and FAT16 file systems provide a limited number of root directory entries, e.g. 512 on typical hard disk formats. The valid range of values is 1 to 65535, but the msdosfs code will effectively round up "odd" values to the next multiple of 16 (e.g. 513 would allow for 528 root directory entries). This update implements tracking of directory entries during create, delete, or rename operations, with initial values determined by scanning the directory when the file system is mounted. Total and free directory entries are reported in the f_files and f_ffree elements of struct statfs, despite differences in semantics of these values: - There is no limit on the number of files and directories that can be created on a FAT file system. Only the root directory of FAT12 and FAT16 file systems is limited, any number of files can still be created in sub-directories, even when 0 free "inodes" are reported. - A single file can require 1 to 21 directory entries, depending on the character set, structure, and length of the name. The DOS 8.3 style file name takes up 1 entry, and if the name does not comply with the syntax of a DOS 8.3 file name, 1 additional entry is used for each 13 characters of the file name. Since all these entries have to be contiguous, it is possible that a file or directory with a long name can not be created, despite a sufficient total number of free directory entries. - Renaming a file can require more directory entries than currently allocated to store its long name, which may prevent an in-place update of the name if more entries are needed. This may cause a rename operation to fail if no contiguous range of free entries for the new name can be found. - The volume label is stored in a directory entry. An empty FAT file system with a volume label will therefore show 1 used "inode" in df. - The perceentage of free inodes shown in df or monitoring tools does only represent the state of the root directory of a FAT12 or FAT16 file system. Neither does a reported value of 0% free inodes does prevent files from being created in sub-directories, nor does a value of 50% free inodes guarantee that even a single file with a "long" name can be created in the root directory (if every other directory entry is occupied and there are no 2 contiguous entries). The statfs(2) and df(1) man pages have been updated with a notice regarding the possibly different semantics of values reported as total and free inodes for non-Unix file systems. PR: 270053 Reported by: Ben Woods <woodsb02@freebsd.org> Approved by: mckusick MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D38987
2023-03-29 06:46:01 +00:00
.Dd March 29, 2023
1994-05-26 06:18:55 +00:00
.Dt DF 1
.Os
1994-05-26 06:18:55 +00:00
.Sh NAME
.Nm df
.Nd display free disk space
.Sh SYNOPSIS
.Nm
2014-11-07 03:07:10 +00:00
.Op Fl -libxo
.Op Fl b | g | H | h | k | m | P
.Op Fl acilnT
.Op Fl \&,
1994-05-26 06:18:55 +00:00
.Op Fl t Ar type
2002-08-26 04:56:23 +00:00
.Op Ar file | filesystem ...
1994-05-26 06:18:55 +00:00
.Sh DESCRIPTION
2002-04-16 20:08:06 +00:00
The
.Nm
utility
1994-05-26 06:18:55 +00:00
displays statistics about the amount of free disk space on the specified
mounted
.Ar file system
or on the file system of which
1994-05-26 06:18:55 +00:00
.Ar file
is a part.
By default block counts are displayed with an assumed block size of
512 bytes.
If neither a file or a file system operand is specified,
statistics for all mounted file systems are displayed
1994-05-26 06:18:55 +00:00
(subject to the
.Fl t
option below).
.Pp
The following options are available:
2007-02-28 10:29:48 +00:00
.Bl -tag -width indent
2015-12-01 19:18:53 +00:00
.It Fl -libxo
Generate output via
.Xr libxo 3
in a selection of different human and machine readable formats.
See
.Xr xo_parse_args 3
for details on command line arguments.
.It Fl a
2007-02-28 10:29:48 +00:00
Show all mount points, including those that were mounted with the
.Dv MNT_IGNORE
flag.
2011-10-18 08:20:36 +00:00
This is implied for file systems specified on the command line.
.It Fl b
Explicitly use 512 byte blocks, overriding any
.Ev BLOCKSIZE
specification from the environment.
This is the same as the
.Fl P
option.
The
.Fl k
option overrides this option.
.It Fl c
Display a grand total.
.It Fl g
Use 1073741824 byte (1 Gibibyte) blocks rather than the default.
This overrides any
.Ev BLOCKSIZE
specification from the environment.
.It Fl h
.Dq Human-readable
output.
Use unit suffixes: Byte, Kibibyte, Mebibyte, Gibibyte, Tebibyte and
Pebibyte (based on powers of 1024) in order to reduce the number of
digits to four or fewer.
.It Fl H , Fl Fl si
Same as
.Fl h
but based on powers of 1000.
1994-05-26 06:18:55 +00:00
.It Fl i
Include statistics on the number of free and used inodes.
In conjunction with the
.Fl h
or
.Fl H
options, the number of inodes is scaled by powers of 1000.
In case the filesystem has no inodes then
.Sq -
is displayed instead of the usage percentage.
.It Fl k
Use 1024 byte (1 Kibibyte) blocks rather than the default.
This overrides the
.Fl P
option and any
.Ev BLOCKSIZE
specification from the environment.
.It Fl l
Select locally-mounted file system for display.
If used in combination with the
.Fl t Ar type
option, file system types will be added or excluded acccording to the
parameters of that option.
.It Fl m
Use 1048576 byte (1 Mebibyte) blocks rather than the default.
This overrides any
.Ev BLOCKSIZE
specification from the environment.
1994-05-26 06:18:55 +00:00
.It Fl n
Print out the previously obtained statistics from the file systems.
1994-05-26 06:18:55 +00:00
This option should be used if it is possible that one or more
file systems are in a state such that they will not be able to provide
1994-05-26 06:18:55 +00:00
statistics without a long delay.
When this option is specified,
1998-05-13 07:35:44 +00:00
.Nm
will not request new statistics from the file systems, but will respond
1994-05-26 06:18:55 +00:00
with the possibly stale statistics that were previously obtained.
.It Fl P
Explicitly use 512 byte blocks, overriding any
.Ev BLOCKSIZE
specification from the environment.
This is the same as the
.Fl b
option.
The
.Fl k
option overrides this option.
.It Fl t Ar type
Select file systems to display.
More than one type may be specified in a comma separated list.
The list of file system types can be prefixed with
.Dq no
to specify the file system types for which action should
.Em not
be taken.
If used in combination with the
.Fl l
option, the parameters of this option will modify the list of
locally-mounted file systems selected by the
.Fl l
option.
For example, the
1998-05-13 07:35:44 +00:00
.Nm
command:
.Bd -literal -offset indent
2001-06-01 10:07:28 +00:00
df -t nonfs,nullfs
.Ed
.Pp
lists all file systems except those of type NFS and NULLFS.
The
.Xr lsvfs 1
command can be used to find out the types of file systems
that are available on the system.
.It Fl T
Include file system type.
.It Fl ,
(Comma) Print sizes grouped and separated by thousands using the
non-monetary separator returned by
.Xr localeconv 3 ,
typically a comma or period.
If no locale is set, or the locale does not have a non-monetary separator, this
option has no effect.
1994-05-26 06:18:55 +00:00
.El
.Sh ENVIRONMENT
1994-05-26 06:18:55 +00:00
.Bl -tag -width BLOCKSIZE
.It Ev BLOCKSIZE
Specifies the units in which to report block counts.
This uses
.Xr getbsize 3 ,
which allows units of bytes or numbers scaled with the letters
.Em k
(for multiples of 1024 bytes),
.Em m
(for multiples of 1048576 bytes) or
.Em g
(for gibibytes).
The allowed range is 512 bytes to 1 GB.
If the value is outside, it will be set to the appropriate limit.
1994-05-26 06:18:55 +00:00
.El
.Sh EXAMPLES
Show human readable free disk space for all mount points including file system
type:
.Bd -literal -offset indent
$ df -ahT
Filesystem Type Size Used Avail Capacity Mounted on
/dev/ada1p2 ufs 213G 152G 44G 78% /
devfs devfs 1.0K 1.0K 0B 100% /dev
/dev/ada0p1 ufs 1.8T 168G 1.5T 10% /data
linsysfs linsysfs 4.0K 4.0K 0B 100% /compat/linux/sys
/dev/da0 msdosfs 7.6G 424M 7.2G 5% /mnt/usb
.Ed
.Pp
Show previously collected data including inode statistics except for devfs or
linsysfs file systems.
Note that the
.Dq no
prefix affects all the file systems in the list and the
.Fl t
option can be specified only once:
.Bd -literal -offset indent
$ df -i -n -t nodevfs,linsysfs
Filesystem 1K-blocks Used Avail Capacity iused ifree %iused
Mounted on
/dev/ada1p2 223235736 159618992 45757888 78% 1657590 27234568 6% /
/dev/ada0p1 1892163184 176319420 1564470712 10% 1319710 243300576 1%
/data
/dev/da0 7989888 433664 7556224 5% 0 0 100%
/mnt/usb
.Ed
.Pp
Show human readable information for the file system containing the file
.Pa /etc/rc.conf :
.Bd -literal -offset indent
$ df -h /etc/rc.conf
Filesystem Size Used Avail Capacity Mounted on
/dev/ada1p2 213G 152G 44G 78% /
.Ed
.Pp
Same as above but specifying some file system:
.Bd -literal -offset indent
$ df -h /dev/ada1p2
Filesystem Size Used Avail Capacity Mounted on
/dev/ada1p2 213G 152G 44G 78% /
.Ed
fs/msdosfs: add tracking of free root directory entries This update implements tallying of free directory entries during create, delete, or rename operations on FAT12 and FAT16 file systems. Prior to this change, the total number of root directory entries was reported as number of inodes, but 0 as the number of free inodes, causing system health monitoring software to warn about a suspected disk full issue. The FAT12 and FAT16 file systems provide a limited number of root directory entries, e.g. 512 on typical hard disk formats. The valid range of values is 1 to 65535, but the msdosfs code will effectively round up "odd" values to the next multiple of 16 (e.g. 513 would allow for 528 root directory entries). This update implements tracking of directory entries during create, delete, or rename operations, with initial values determined by scanning the directory when the file system is mounted. Total and free directory entries are reported in the f_files and f_ffree elements of struct statfs, despite differences in semantics of these values: - There is no limit on the number of files and directories that can be created on a FAT file system. Only the root directory of FAT12 and FAT16 file systems is limited, any number of files can still be created in sub-directories, even when 0 free "inodes" are reported. - A single file can require 1 to 21 directory entries, depending on the character set, structure, and length of the name. The DOS 8.3 style file name takes up 1 entry, and if the name does not comply with the syntax of a DOS 8.3 file name, 1 additional entry is used for each 13 characters of the file name. Since all these entries have to be contiguous, it is possible that a file or directory with a long name can not be created, despite a sufficient total number of free directory entries. - Renaming a file can require more directory entries than currently allocated to store its long name, which may prevent an in-place update of the name if more entries are needed. This may cause a rename operation to fail if no contiguous range of free entries for the new name can be found. - The volume label is stored in a directory entry. An empty FAT file system with a volume label will therefore show 1 used "inode" in df. - The perceentage of free inodes shown in df or monitoring tools does only represent the state of the root directory of a FAT12 or FAT16 file system. Neither does a reported value of 0% free inodes does prevent files from being created in sub-directories, nor does a value of 50% free inodes guarantee that even a single file with a "long" name can be created in the root directory (if every other directory entry is occupied and there are no 2 contiguous entries). The statfs(2) and df(1) man pages have been updated with a notice regarding the possibly different semantics of values reported as total and free inodes for non-Unix file systems. PR: 270053 Reported by: Ben Woods <woodsb02@freebsd.org> Approved by: mckusick MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D38987
2023-03-29 06:46:01 +00:00
.Sh NOTES
For non-Unix file systems, the reported values of used and free inodes
may have a different meaning than that of used and available files and
directories.
An example is msdosfs, which in the case of FAT12 or FAT16 file systems
reports the number of available and free root directory entries instead
of inodes
.Po
where 1 to 21 such directory entries are required to store
each file or directory name or disk label
.Pc .
1994-05-26 06:18:55 +00:00
.Sh SEE ALSO
.Xr lsvfs 1 ,
1994-05-26 06:18:55 +00:00
.Xr quota 1 ,
.Xr fstatfs 2 ,
.Xr getfsstat 2 ,
1997-01-13 00:25:51 +00:00
.Xr statfs 2 ,
.Xr getbsize 3 ,
1994-05-26 06:18:55 +00:00
.Xr getmntinfo 3 ,
2014-11-07 03:07:10 +00:00
.Xr libxo 3 ,
.Xr localeconv 3 ,
2014-11-07 03:07:10 +00:00
.Xr xo_parse_args 3 ,
1994-05-26 06:18:55 +00:00
.Xr fstab 5 ,
.Xr mount 8 ,
2013-05-17 03:52:20 +00:00
.Xr pstat 8 ,
.Xr quot 8 ,
.Xr swapinfo 8
.Sh STANDARDS
With the exception of most options,
the
.Nm
utility conforms to
.St -p1003.1-2004 ,
which defines only the
.Fl k , P
and
.Fl t
options.
1994-05-26 06:18:55 +00:00
.Sh HISTORY
A
1998-05-13 07:35:44 +00:00
.Nm
1994-05-26 06:18:55 +00:00
command appeared in
.At v1 .
.Sh BUGS
The
.Fl n
flag is ignored if a file or file system is specified.
Also, if a mount
point is not accessible by the user, it is possible that the file system
information could be stale.
.Pp
The
.Fl b
and
.Fl P
options are identical.
The former comes from the BSD tradition, and the latter is required
for
.St -p1003.1-2004
conformity.