我有一个安装在单个 8GB 驱动器上的 Ubuntu 20.04 服务器。默认安装也安装了一些“snap”。因此,该df
命令还报告了一些“squashfs”文件系统:
# df -mT
Filesystem Type 1M-blocks Used Available Use% Mounted on
/dev/root ext4 7877 1837 6025 24% /
devtmpfs devtmpfs 465 0 465 0% /dev
tmpfs tmpfs 477 0 477 0% /dev/shm
tmpfs tmpfs 96 1 95 1% /run
tmpfs tmpfs 5 0 5 0% /run/lock
tmpfs tmpfs 477 0 477 0% /sys/fs/cgroup
/dev/loop0 squashfs 18 18 0 100% /snap/amazon-ssm-agent/1566
/dev/loop1 squashfs 94 94 0 100% /snap/core/9066
/dev/loop2 squashfs 55 55 0 100% /snap/core18/1705
/dev/loop3 squashfs 69 69 0 100% /snap/lxd/14804
/dev/loop4 squashfs 70 70 0 100% /snap/lxd/14890
/dev/loop5 squashfs 55 55 0 100% /snap/core18/1754
tmpfs tmpfs 96 0 96 0% /run/user/1000
如您所见,(唯一的)磁盘中仅存储了 1837MB 的数据。
/
现在,我正在尝试使用以下命令列出根目录下每个目录的磁盘使用情况( ):
# du -smc /* 2>/dev/null
0 /bin
48 /boot
0 /dev
8 /etc
1 /home
0 /lib
0 /lib32
0 /lib64
0 /libx32
1 /lost+found
1 /media
1 /mnt
1 /opt
0 /proc
1 /root
1 /run
0 /sbin
1116 /snap
1 /srv
0 /sys
1 /tmp
1166 /usr
601 /var
2938 total
输出显示目录使用了大量的磁盘空间/snap
,这当然不是事实。
计算文件大小的正确方法是什么仅有的在“真实磁盘”文件系统上?添加选项-x
让du
我感到不舒服,因为将来我可能会在/home
例如下面安装另一个“真实磁盘”文件系统,而我确实想要将du
其计入 的输出中。
答案1
与 不同df
,据我所知,du
它不提供--exclude-type
跳过特定文件系统类型的功能。但是,您可以通过 glob 模式排除特定的顶级目录:
du -smc --exclude=/snap /* 2>/dev/null
或者(也排除临时文件系统)并假设你的 shell 支持括号扩展:
du -smc --exclude=/{proc,run,sys,snap} /* 2>/dev/null