当我执行时df -H
我得到:
/dev/nvme0n1p2 63G 42G 18G 70% /
我想清理这个分区,因为它已使用了 70% 的空间,但我该如何找到它?文件在哪里?
如果我使用以下方法检查磁盘空间sudo du -h --max-depth=1 / | sort -h
,我会得到
0 /proc
0 /sys
4.0K /cdrom
4.0K /dev
4.0K /srv
8.0K /media
8.0K /mnt
16K /lost+found
768K /tmp
3.0M /run
14M /etc
180M /root
561M /boot
5.6G /opt
8.1G /snap
13G /var
21G /usr
176G /home
222G /
这意味着/
占用了 222 GB,但是上面的分区只有/
42?
答案1
是/
系统的根目录。其他所有内容都安装在 的子目录中/
。如果您查看mount
或的输出,您可以更清楚地看到这一点lsblk
。例如,在我的系统上:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 953.9G 0 disk
├─nvme0n1p1 259:1 0 260M 0 part
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 186G 0 part
├─nvme0n1p4 259:4 0 1000M 0 part
├─nvme0n1p5 259:5 0 56.6G 0 part /
├─nvme0n1p6 259:6 0 680.1G 0 part
│ └─home 254:0 0 680.1G 0 crypt /home
└─nvme0n1p7 259:7 0 30G 0 part [SWAP]
这告诉我该分区nvme0n1p5
已安装于 ,/
并且该分区nvme0n1p6
已安装于/home
的一个子目录/
。
当你这样做时du /
,它将搜索/
以及任何子目录,即使它们位于不同的文件系统上。这就是您看到 222 GB 的原因:您除了检查 之外还检查了其他分区,nvme0n1p2
因为它们可能安装在 下的某个位置/
。您的 很可能/home
位于不同的分区上,就像我的系统一样,因为/home
报告的 是 176G 和 222G - 176G = 46G,这与 的输出一致df
。
如果只想查看 的使用情况/
而不查看其他内容,则需要该-x
标志。来自man du
:
-x, --one-file-system
skip directories on different file systems
再次以我的系统为例,您的原始命令给我:
$ sudo du -h --max-depth=1 / | sort -h
0 /proc
0 /sys
12K /srv
16K /lost+found
2.1M /run
23M /tmp
27M /etc
54M /dev
71M /boot.old
72M /boot
315M /root
2.1G /opt
20G /var
21G /usr
228G /home
270G /
但如果我添加-x
,我会得到预期的输出:
$ sudo du -xh --max-depth=1 / | sort -h
12K /srv
16K /lost+found
27M /etc
71M /boot.old
72M /boot
315M /root
2.1G /opt
20G /var
21G /usr
43G /