(Linux系统之du命令的基本使用)
一、du命令介绍
du命令是用于显示目录或文件占用的磁盘空间。
二、du命令帮助
1. du命令的help帮助信息
在Linux中的du命令中的help帮助信息
[root@jeven ~]# du --help
Usage: du [OPTION]... [FILE]...
or: du [OPTION]... --files0-from=F
Summarize disk usage of each FILE, recursively for directories.
Mandatory arguments to long options are mandatory for short options too.
-0, --null end each output line with 0 byte rather than newline
-a, --all write counts for all files, not just directories
--apparent-size print apparent sizes, rather than disk usage; although
the apparent size is usually smaller, it may be
larger due to holes in ('sparse') files, internal
fragmentation, indirect blocks, and the like
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'-BM' prints sizes in units of 1,048,576 bytes;
see SIZE format below
-b, --bytes equivalent to '--apparent-size --block-size=1'
-c, --total produce a grand total
-D, --dereference-args dereference only symlinks that are listed on the
command line
-d, --max-depth=N print the total for a directory (or file, with --all)
only if it is N or fewer levels below the command
line argument; --max-depth=0 is the same as
--summarize
--files0-from=F summarize disk usage of the
NUL-terminated file names specified in file F;
if F is -, then read names from standard input
-H equivalent to --dereference-args (-D)
-h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
--inodes list inode usage information instead of block usage
-k like --block-size=1K
-L, --dereference dereference all symbolic links
-l, --count-links count sizes many times if hard linked
-m like --block-size=1M
-P, --no-dereference don't follow any symbolic links (this is the default)
-S, --separate-dirs for directories do not include size of subdirectories
--si like -h, but use powers of 1000 not 1024
-s, --summarize display only a total for each argument
-t, --threshold=SIZE exclude entries smaller than SIZE if positive,
or entries greater than SIZE if negative
--time show time of the last modification of any file in the
directory, or any of its subdirectories
--time=WORD show time as WORD instead of modification time:
atime, access, use, ctime or status
--time-style=STYLE show times using STYLE, which can be:
full-iso, long-iso, iso, or +FORMAT;
FORMAT is interpreted like in 'date'
-X, --exclude-from=FILE exclude files that match any pattern in FILE
--exclude=PATTERN exclude files that match PATTERN
-x, --one-file-system skip directories on different file systems
--help display this help and exit
--version output version information and exit
Display values are in units of the first available SIZE from --block-size,
and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.
Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'du invocation'
2. du命令选项解释
du命令选项解释
-a, --all 显示目录中个别文件的大小。
-B, --block-size=大小 使用指定字节数的块
-b, --bytes 显示目录或文件大小时,以byte为单位。
-c, --total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D, --dereference-args 显示指定符号链接的源文件大小。
-H, --si 与-h参数相同,但是K,M,G是以1000为换算单位。
-h, --human-readable 以K,M,G为单位,提高信息的可读性。
-k, --kilobytes 以KB(1024bytes)为单位输出。
-l, --count-links 重复计算硬件链接的文件。
-m, --megabytes 以MB为单位输出。
-L<符号链接>, --dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-P, --no-dereference 不跟随任何符号链接(默认)
-0, --null 将每个空行视作0 字节而非换行符
-S, --separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-s, --summarize 仅显示总计,只列出最后加总的值。
-x, --one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>, --exclude-from=<文件> 在<文件>指定目录或文件。
--apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大。
--files0-from=F 计算文件F中以NUL结尾的文件名对应占用的磁盘空间如果F的值是"-",则从标准输入读入文件名
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=N 显示目录总计(与--all 一起使用计算文件)当N为指定数值时计算深度为N,等于0时等同--summarize
--si 类似-h,但在计算时使用1000 为基底而非1024
--time 显示目录或该目录子目录下所有文件的最后修改时间
--time=WORD 显示WORD时间,而非修改时间:atime,access,use,ctime 或status
--time-style=样式 按照指定样式显示时间(样式解释规则同"date"命令):full-iso,long-iso,iso,+FORMAT
--help 显示此帮助信息并退出
--version 显示版本信息并退出
三、du命令的基本使用
1. 显示目录的总和大小
显示目录总的所占大小
[root@jeven ~]# du -sh /etc/sysconfig/
464K /etc/sysconfig/
2. 显示目录下各文件所占大小
查看指定目录下文件所占的空间。
[root@jeven ~]# du -sh /etc/sysconfig/*
4.0K /etc/sysconfig/anaconda
4.0K /etc/sysconfig/atd
4.0K /etc/sysconfig/authconfig
4.0K /etc/sysconfig/autofs
8.0K /etc/sysconfig/cbq
4.0K /etc/sysconfig/cgred
4.0K /etc/sysconfig/chronyd
0 /etc/sysconfig/console
4.0K /etc/sysconfig/cpupower
4.0K /etc/sysconfig/crond
4.0K /etc/sysconfig/ebtables-config
4.0K /etc/sysconfig/fcoe
4.0K /etc/sysconfig/firewalld
0 /etc/sysconfig/grub
4.0K /etc/sysconfig/init
4.0K /etc/sysconfig/ip6tables-config
4.0K /etc/sysconfig/iptables-config
4.0K /etc/sysconfig/irqbalance
4.0K /etc/sysconfig/kdump
4.0K /etc/sysconfig/kernel
4.0K /etc/sysconfig/ksm
4.0K /etc/sysconfig/libvirtd
4.0K /etc/sysconfig/lm_sensors
4.0K /etc/sysconfig/man-db
0 /etc/sysconfig/modules
4.0K /etc/sysconfig/netconsole
4.0K /etc/sysconfig/network
272K /etc/sysconfig/network-scripts
4.0K /etc/sysconfig/nfs
4.0K /etc/sysconfig/ntpd
4.0K /etc/sysconfig/ntpdate
4.0K /etc/sysconfig/qemu-ga
4.0K /etc/sysconfig/radvd
4.0K /etc/sysconfig/raid-check
4.0K /etc/sysconfig/rdisc
4.0K /etc/sysconfig/readonly-root
4.0K /etc/sysconfig/rpcbind
4.0K /etc/sysconfig/rpc-rquotad
4.0K /etc/sysconfig/rsyncd
4.0K /etc/sysconfig/rsyslog
0 /etc/sysconfig/run-parts
4.0K /etc/sysconfig/samba
4.0K /etc/sysconfig/saslauthd
0 /etc/sysconfig/selinux
4.0K /etc/sysconfig/smartmontools
4.0K /etc/sysconfig/sshd
4.0K /etc/sysconfig/sysstat
8.0K /etc/sysconfig/sysstat.ioconf
4.0K /etc/sysconfig/virtlockd
4.0K /etc/sysconfig/virtlogd
4.0K /etc/sysconfig/wpa_supplicant
3. 只显示指定目录下子目录的大小
查看指定目录下子目录的大小
[root@jeven ~]# du -sh /etc/sysconfig/*/
8.0K /etc/sysconfig/cbq/
0 /etc/sysconfig/console/
0 /etc/sysconfig/modules/
272K /etc/sysconfig/network-scripts/
四、du命令的日常使用
1. 将文件从大到小排序
将目录下的文件从大到小进行排序。
[root@jeven ~]# du -sh /etc/sysconfig/* |sort -rh
272K /etc/sysconfig/network-scripts
8.0K /etc/sysconfig/sysstat.ioconf
8.0K /etc/sysconfig/cbq
4.0K /etc/sysconfig/wpa_supplicant
4.0K /etc/sysconfig/virtlogd
4.0K /etc/sysconfig/virtlockd
4.0K /etc/sysconfig/sysstat
4.0K /etc/sysconfig/sshd
4.0K /etc/sysconfig/smartmontools
4.0K /etc/sysconfig/saslauthd
4.0K /etc/sysconfig/samba
4.0K /etc/sysconfig/rsyslog
4.0K /etc/sysconfig/rsyncd
4.0K /etc/sysconfig/rpc-rquotad
4.0K /etc/sysconfig/rpcbind
4.0K /etc/sysconfig/readonly-root
4.0K /etc/sysconfig/rdisc
4.0K /etc/sysconfig/raid-check
4.0K /etc/sysconfig/radvd
4.0K /etc/sysconfig/qemu-ga
4.0K /etc/sysconfig/ntpdate
4.0K /etc/sysconfig/ntpd
4.0K /etc/sysconfig/nfs
4.0K /etc/sysconfig/network
4.0K /etc/sysconfig/netconsole
4.0K /etc/sysconfig/man-db
4.0K /etc/sysconfig/lm_sensors
4.0K /etc/sysconfig/libvirtd
4.0K /etc/sysconfig/ksm
4.0K /etc/sysconfig/kernel
4.0K /etc/sysconfig/kdump
4.0K /etc/sysconfig/irqbalance
4.0K /etc/sysconfig/iptables-config
4.0K /etc/sysconfig/ip6tables-config
4.0K /etc/sysconfig/init
4.0K /etc/sysconfig/firewalld
4.0K /etc/sysconfig/fcoe
4.0K /etc/sysconfig/ebtables-config
4.0K /etc/sysconfig/crond
4.0K /etc/sysconfig/cpupower
4.0K /etc/sysconfig/chronyd
4.0K /etc/sysconfig/cgred
4.0K /etc/sysconfig/autofs
4.0K /etc/sysconfig/authconfig
4.0K /etc/sysconfig/atd
4.0K /etc/sysconfig/anaconda
0 /etc/sysconfig/selinux
0 /etc/sysconfig/run-parts
0 /etc/sysconfig/modules
0 /etc/sysconfig/grub
0 /etc/sysconfig/console
2. 显示文件修改时间
显示目录或该目录子目录下所有文件的最后修改时间
[root@jeven ~]# du -sh /etc/sysconfig/* --time
4.0K 2022-02-02 04:18 /etc/sysconfig/anaconda
4.0K 2018-10-31 01:10 /etc/sysconfig/atd
4.0K 2022-02-02 04:18 /etc/sysconfig/authconfig
4.0K 2018-10-31 08:17 /etc/sysconfig/autofs
8.0K 2022-02-02 04:13 /etc/sysconfig/cbq
4.0K 2018-10-31 07:26 /etc/sysconfig/cgred
4.0K 2018-04-13 01:37 /etc/sysconfig/chronyd
0 2018-10-31 06:57 /etc/sysconfig/console
4.0K 2018-11-09 07:49 /etc/sysconfig/cpupower
4.0K 2018-04-11 09:48 /etc/sysconfig/crond
4.0K 2018-04-11 10:44 /etc/sysconfig/ebtables-config
4.0K 2017-08-08 09:46 /etc/sysconfig/fcoe
4.0K 2018-10-31 06:46 /etc/sysconfig/firewalld
0 2022-02-02 04:14 /etc/sysconfig/grub
4.0K 2018-10-31 06:57 /etc/sysconfig/init
4.0K 2018-11-05 01:03 /etc/sysconfig/ip6tables-config
4.0K 2018-11-05 01:03 /etc/sysconfig/iptables-config
4.0K 2018-04-11 04:31 /etc/sysconfig/irqbalance
4.0K 2018-11-05 01:10 /etc/sysconfig/kdump
4.0K 2022-02-02 04:18 /etc/sysconfig/kernel
4.0K 2018-10-31 02:36 /etc/sysconfig/ksm
4.0K 2018-10-31 08:16 /etc/sysconfig/libvirtd
4.0K 2019-08-06 21:44 /etc/sysconfig/lm_sensors
4.0K 2018-10-30 22:55 /etc/sysconfig/man-db
0 2018-10-31 06:57 /etc/sysconfig/modules
4.0K 2018-10-31 06:57 /etc/sysconfig/netconsole
4.0K 2022-02-02 04:18 /etc/sysconfig/network
272K 2023-05-10 16:25 /etc/sysconfig/network-scripts
4.0K 2018-11-08 00:56 /etc/sysconfig/nfs
4.0K 2018-04-11 04:29 /etc/sysconfig/ntpd
4.0K 2018-04-11 04:29 /etc/sysconfig/ntpdate
4.0K 2018-10-30 22:53 /etc/sysconfig/qemu-ga
4.0K 2018-10-31 01:54 /etc/sysconfig/radvd
4.0K 2018-10-30 22:55 /etc/sysconfig/raid-check
4.0K 2017-08-04 16:01 /etc/sysconfig/rdisc
4.0K 2018-10-31 06:57 /etc/sysconfig/readonly-root
4.0K 2018-10-31 07:00 /etc/sysconfig/rpcbind
4.0K 2018-04-11 04:29 /etc/sysconfig/rpc-rquotad
4.0K 2018-04-11 10:00 /etc/sysconfig/rsyncd
4.0K 2018-10-30 22:49 /etc/sysconfig/rsyslog
0 2014-06-10 06:14 /etc/sysconfig/run-parts
4.0K 2018-10-31 06:32 /etc/sysconfig/samba
4.0K 2018-04-11 04:21 /etc/sysconfig/saslauthd
0 2022-02-02 04:14 /etc/sysconfig/selinux
4.0K 2018-04-11 04:42 /etc/sysconfig/smartmontools
4.0K 2018-04-11 12:21 /etc/sysconfig/sshd
4.0K 2018-10-31 04:04 /etc/sysconfig/sysstat
8.0K 2018-10-31 04:04 /etc/sysconfig/sysstat.ioconf
4.0K 2018-10-31 08:16 /etc/sysconfig/virtlockd
4.0K 2018-10-31 08:16 /etc/sysconfig/virtlogd
4.0K 2018-10-31 07:03 /etc/sysconfig/wpa_supplicant
3. 查看系统中占用空间较大的文件
查看系统中占用空间较大的文件,并进行排序。
[root@jeven ~]# du --max-depth=3 -h / |sort -rh |head -n 20
du: cannot access ‘/proc/22348/task/22348/fd/3’: No such file or directory
du: cannot access ‘/proc/22348/task/22348/fdinfo/3’: No such file or directory
du: cannot access ‘/proc/22348/fd/4’: No such file or directory
du: cannot access ‘/proc/22348/fdinfo/4’: No such file or directory
29G /
20G /var
18G /var/lib/docker
18G /var/lib
4.1G /usr
2.5G /root
2.4G /data
2.3G /root/dockerdata/overlay2
2.3G /root/dockerdata
1.6G /var/cache/yum
1.6G /var/cache
1.4G /usr/share
1.1G /usr/lib64
763M /data/odc
742M /usr/lib
563M /data/nging
444M /usr/bin
426M /usr/share/locale
398M /usr/libexec
333M /data/vanblog