“du”表示某物占用大量空间,但到底是什么?

“du”表示某物占用大量空间,但到底是什么?

我有这个:

$ 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

然而,任何目录或文件都不会占用 1 GB 的空间。我怎样才能知道这 27 GB 的占用空间是什么?

答案1

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

$ du -hxd1
184K ./proftpd
80K  ./apt
4.0K ./fsck
12M  ./nginx
155M .

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    .

答案2

您是否尝试过在 root 和 /var/log 中运行“ls -alhS”?它可能是一个存档的旋转文件或被一个进程或其他进程隐藏的其他文件。

上面的命令将显示所有文件/权限并按大小排序。文件大小(K/M/G)

答案3

好的,让我们执行一些命令,看看我期望什么结果。这是来自我自己的 Unix 目录

du -mh /data/project/seth_support/seth 

它显示了 seth 内文件和目录的所有内容并显示大小(以 Mb 为单位)。最后一行显示目录的总大小(以 Mb 为单位),即 930 MB。如果我把文件和目录的大小加起来,那么它也将达到 930 MB。

现在

du -sh /data/project/seth_support/seth

还显示最后一行并显示 930 MB 的大小。

在您的情况下,我不确定命令选项 du -hxd1 。当我执行时它显示无效选项。请询问您的系统管理员关于 27 GB 的不清楚的空间。

答案4

du(磁盘使用情况)是一个标准的Unix/Linux命令,用于检查机器上文件和目录的磁盘使用信息。 du 命令还以递归方式显示文件和目录大小。

du -h /目录名称(-h 表示人类可读格式。意味着您可以看到以字节、千字节、兆字节、千兆字节等为单位的大小)

du -sh /目录名称(目录的磁盘使用总大小的摘要)

du -ah /目录名称(几乎与-h相同)

du -k / 目录名称(以千字节为单位)

du -mh / 目录名称(以兆字节为单位)

还有更多选项,但上面的选项更常用。

相关内容