如何知道哪个文件或目录占用了全部空间?

如何知道哪个文件或目录占用了全部空间?

我有一台装有 Ubuntu 20.04 的服务器,问题是disk/dev/vda1分区已满。但是,我几乎没有东西可安装。

如何知道哪个文件或目录占用了所有空间?

ubuntu@pv-hdh87 ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
tmpfs           595M  1.1M  594M   1% /run
/dev/vda1        20G   18G  1.3G  94% /
tmpfs           3.0G     0  3.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.0G     0  3.0G   0% /sys/fs/cgroup
/dev/vda15      105M  9.1M   96M   9% /boot/efi
/dev/loop0       72M   72M     0 100% /snap/lxd/16099
/dev/loop1       55M   55M     0 100% /snap/core18/1880
/dev/vdb         98G  4.7G   89G   6% /home
tmpfs           595M     0  595M   0% /run/user/1000
tmpfs           595M     0  595M   0% /run/user/114
/dev/loop3       30M   30M     0 100% /snap/snapd/8790
/dev/loop4       56M   56M     0 100% /snap/core18/1885
/dev/loop5       71M   71M     0 100% /snap/lxd/16922
/dev/loop6       31M   31M     0 100% /snap/snapd/9279

答案1

du可以使用 coreutils 中的命令来实现这一点。可以像这样使用:

du -h -d 1 /
12G /usr
16K /lost+found
964K    /run
324G    /home
0   /dev
77M /boot
348K    /tmp
326M    /root
0   /sys
2.5G    /opt
16G /var
12K /srv
20K /media
4.0K    /mnt
0   /proc
9.8M    /etc
354G    /

返回-h人类可读的输出并-d 1定义要汇总的级别。

根据磁盘的大小,命令可能需要一些时间才能完成。在/var检查整个磁盘之前,先检查潜在的大型目录可能是有意义的,例如:

du -h -d 1 /var

答案2

我认为您可以尝试这个来获取 10 个最大的文件:

find / -type f | xargs ls -la | awk '{print $5,$9}' | sort -rn | head -n 10

相关内容