Two tools, df and du, report how much disk space is free and how much is used by any given directory. For each filesystem, df tells you the capacity, how much space is in use, and how much is free. By default, it lists both local and remote (i.e., ) filesystems. Under BSD UNIX, the output from df looks like this:
dfFilesystem kbytes used avail capacity Mounted on /dev/disk0a 889924 724308 76620 90% / /dev/disk3d 505463 376854 78062 83% /benchmarks /dev/disk5e 635287 553121 18637 97% /field /dev/disk2d 505463 444714 10202 98% /research /dev/disk1e 956094 623534 236950 72% /homes toy:/usr 498295 341419 107046 76% /usr toy:/ 7495 5883 862 87% /root ...
This report shows information about five local filesystems and two remote filesystems (from the system toy). The /research and /field filesystems are nearly filled (98 and 97 percent, respectively), while the other filesystems still have a lot of room left. You might want to take some action to free up some storage on these two filesystems. Note that a BSD filesystem that is 100 percent full really has 10 percent free space–but only thecan use this last 10& percent, and that usually isn't a good idea.
df can be invoked in several other ways:
If you already know that you're interested in a particular filesystem,
you can use a command such as df /homes or
If your system uses NFS and you are interested only in local filesystems, use the command df -t& 4.2. You should always use this command if remote file servers are down. If you have mounted remote disks that are unavailable, df will be extremely slow.
If you are interested inusage rather than filesystem data capacity, use the command df -i. This produces a similar report showing inode statistics.
If you are using the older System V filesystem, the report from df will look different. The information it presents, however, is substantially the same. Here is a typical report, taken from a XENIX system:
df/ (/dev/root ): 1758 blocks 3165 i-nodes /u (/dev/u ): 108 blocks 13475 i-nodes /us (/dev/us ): 15694 blocks 8810 i-nodes
|df||There are 1758 physical blocks (always measured as 512-byte blocks, regardless of the filesystem's logical block size) and 3165 inodes available on the root filesystem. To find out the filesystem's total capacity, use df -t. The command df -l only reports on your system's local filesystems, omitting filesystems mounted by NFS or RFS. The dfspace command (available on Systems V.3 and V.4) produces a significantly nicer report that's similar to the BSD-style df. For each filesystem, dfspace shows the amount of free storage both in kilobytes and as a percentage of the filesystem's size. You may also want to try the GNU df on the CD-ROM.|
It is often useful to know how much storage a specific directory requires. This can help you to determine if any users are occupying more than their share of storage. The du utility provides such a report. Here's a simple report from du:
du107 ./reports 888 ./stuff 32 ./howard/private 33 ./howard/work 868 ./howard 258 ./project/code 769 ./project 2634 .
This command shows that the current directory and all of its subdirectories occupy about 2.5 MB (2634 KB). The biggest directories in this group are stuff and howard, which have a total of 888 KB and 868 KB, respectively. The report also shows storage occupied by sub-subdirectories (/howard/work, etc.). du& does not show individual files as separate items, unless you invoke it with the -a& option. Note that System V reports disk usage in 512-byte blocks, not KB.
The -s option tells du to report the total amount of storage occupied by a directory; it suppresses individual reports for all subdirectories. For example:
du -s2634 .
- from O'Reilly & Associates' System Performance Tuning, Chapter 5