Mac 上的 du 和 df 给出不同的结果

Mac 上的 du 和 df 给出不同的结果

我正在试图弄清楚我的高清空间去哪里了。df告诉我这个:

bash-3.2$ df -h /
Filesystem   Size   Used  Avail Capacity  iused   ifree %iused  Mounted on
/dev/disk1  148Gi  137Gi   11Gi    93% 35980809 2791381   93%   /

这里的基本信息是正确的。我的磁盘以 log10(1000)为单位是 160GB,以 log2(1024)为单位是 148GB。df -h在 Mac 上返回 log2 单位,因此信息是正确的。好的,那么,以 log2 单位使用 137GB。在哪里?让我们使用du

bash-3.2$ sudo du -d 1 -h /
Password:
1.0G    /.DocumentRevisions-V100
 40M    /.fseventsd
2.7G    /.Spotlight-V100
  0B    /.Trashes
  0B    /.vol
 33G    /Applications
2.3M    /bin
  0B    /cores
  0B    /Datarescue
4.5K    /dev
1.0K    /home
 15M    /Incompatible Software
8.3G    /Library
  0B    /lost+found
1.0K    /net
  0B    /Network
7.3G    /opt
 15M    /Payloads
8.3G    /private
1.1M    /sbin
6.0G    /System
 60G    /Users
1.1G    /usr
4.0K    /Volumes
128G    /

du -h也使用 log2 单位。所以,您可能会看到我的问题:这里缺少 9GB(实际使用了 128GB,但报告使用了 137GB)。我如何找出这些内存去了哪里?

(我看到这个问题在过去重复出现过几次,那里的问题通常是人们没有以 root 身份运行 du,所以它没有包含某些文件,并且这在 stderr 上报告了 - 但我显然以 root 身份运行,并且没有在 stderr 上报告有关无法读取文件的错误。)

[编辑]

为了从以下回复中澄清,我通过使用“sudo gdu --apparent-size -h -d 1 /”而不是“sudo du -d 1 -h /”解决了这个问题,现在它正确报告使用了 139GB,这与 df 报告的 137/148 足够接近。

答案1

我认为你的情况可能很简单,只需df报告吉比特虽然du -h报告技嘉除非你-h用替换--si

例如

> du -s -h
303G
> du -s --si
326G

答案2

遇到了这个。我在 ubuntu 上使用了 ncdu 实用程序,但你也可以在 mac 上安装它。

https://apple.stackexchange.com/questions/173767/terminal-command-ncdu

这将为您提供查看尺寸和表观尺寸的选项。

另外,请记住,可能有一些被删除的文件“仍然存在”,也就是说,你可以用以下方法找到它们

lsof | grep deleted

https://access.redhat.com/solutions/2316

相关内容