“du”表示某物占用了大量空间,但究竟是什么?

Kol*_*ayn 0 ubuntu hard-disk

我有这个:

$ sudo du -hxd1 /var/log
20K     /var/log/nginx
4.0K    /var/log/lxd
16K     /var/log/unattended-upgrades
108K    /var/log/apt
4.0K    /var/log/sysstat
4.0K    /var/log/dist-upgrade
421M    /var/log/postgresql
27G     /var/log
Run Code Online (Sandbox Code Playgroud)

但是,没有一个目录或文件占用 Gb 空间。我怎样才能找出这些 27 Gb 的内容?

小智 6

du只显示目录总大小,不显示文件大小。因此,占用数 GB 的文件将在/var/log目录中,因为目录的总数在最后列出,而不仅仅是其子目录的总数:

$ du -hxd1
184K ./proftpd
80K  ./apt
4.0K ./fsck
12M  ./nginx
155M .
Run Code Online (Sandbox Code Playgroud)

du -axh将列出所有具有人类可读性的文件,可以排序:du -axh | sort -h.

$ du -axh | sort -h # some entries snipped for readability
4.0K    ./proftpd/proftpd.log
4.0K    ./proftpd/proftpd.log.2.gz
8.0K    ./auth.log.2.gz
8.0K    ./auth.log.3.gz
8.0K    ./auth.log.4.gz
8.0K    ./faillog
12K     ./mail.warn
53M     ./mail.info.1
53M     ./mail.log.1
155M    .
Run Code Online (Sandbox Code Playgroud)