du 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

du 命令安装:


-bash/zsh: du: command not found

#Debian
apt-get install coreutils

#Ubuntu
apt-get install coreutils

#Alpine
apk add coreutils

#Arch Linux
pacman -S coreutils

#Kali Linux
apt-get install coreutils

#CentOS
yum install coreutils

#Fedora
dnf install coreutils

#OS X
brew install coreutils

#Raspbian
apt-get install coreutils

#Docker
docker run cmd.cat/du du

du 命令补充说明:


du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和 df 命令有一些区别的。

du 命令语法:


du [OPTION]... [FILE]...

du [OPTION]... --files0-from=F

du 命令选项:


-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示总计。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息

du 命令实例:


du 显示目录或者文件所占空间:

[root@TestMaster /]
# du
0       ./dev/net
0       ./dev/vfio
0       ./dev/mapper
0       ./dev/snd
0       ./dev/hugepages
0       ./dev/mqueue
0       ./dev/disk/by-uuid
0       ./dev/disk/by-path
0       ./dev/disk/by-id
0       ./dev/disk
0       ./dev/block
0       ./dev/virtio-ports
0       ./dev/dri
0       ./dev/char
0       ./dev/pts
16      ./dev/shm
0       ./dev/input/by-id
0       ./dev/input/by-path
0       ./dev/input
0       ./dev/bus/usb/001
0       ./dev/bus/usb
0       ./dev/bus
0       ./dev/raw
0       ./dev/cpu/3
0       ./dev/cpu/2
0       ./dev/cpu/1

du 显示指定文件所占空间:

[root@TestMaster /Data/Android/SSP]
$ du SSP.java 

2700    SSP.java

-------------
#方便人类阅读格式 -h 显示目录所占空间情况:

[root@TestMaster /Data/Android]
$ du -h

2.7M    ./SSP
2.7M    .

利用 du 命令,如何查找 Linux 下的大目录


有时候磁盘空间告警了,那么我需要快速的了解哪些目录变得比较大,那么此时我们可以借助 du 命令来帮我们解决这个问题。

$ du -h --max-depth=1

0       ./audio
314G    ./music
0       ./video
319G    ./download
633G    .

#利用 sort 排序,有时候排序顺序有问题,
#是由于 -h 的缘故,可以用MB方式,即 du -hm max-depth..|sort..
#如果文件较多,可以用 |head 等管道方式,比如 head -10 最大的10个文件夹

$ du -h --max-depth=1|sort -nr |head -10

0       ./audio
0       ./video
314G    ./open.initialage.net
319G    ./download
633G  

du 命令扩展阅读:




du 命令评论

共收录到 512Linux 命令