当我执行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 /
这意味着/
占用222GB,但是上面的/
分区只占42?
发布于 2022-10-12 13:54:41
/
是系统的根。其他所有内容都挂载在/
的子目录上。如果您查看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
上挂载的,D8
是/
的一个子目录。
当您执行du /
时,它将搜索/
和任何子目录,即使它们位于不同的文件系统中。这就是为什么您看到222 GB:除了nvme0n1p2
之外,您还在检查其他分区,因为它们大概安装在/
下的某个地方。您的/home
很可能位于不同的分区上,就像我的系统上的情况一样,因为您的/home
报告为176 g和222 G-176 g= 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 /
https://askubuntu.com/questions/1435058
复制相似问题