输出
sudo df -h
是
Filesystem Size Used Avail Use% Mounted on
rootfs 9.2G 5.7G 3.1G 65% /
udev 10M 0 10M 0% /dev
tmpfs 357M 720K 356M 1% /run
/dev/disk/by-uuid/13605893-3936-4fd6-a7f5-e249f16c3f72 9.2G 5.7G 3.1G 65% /
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.2G 2.5M 2.2G 1% /run/shm
/dev/sda6
278G 12G 252G 5% /home
然而
sudo du -sh /dev/sd*
给出
0 /dev/sda
0 /dev/sda1
0 /dev/sda2
0 /dev/sda5
0 /dev/sda6
哦哦
答案1
您的原始设备列在 中/dev/
,但这不是文件系统所在的位置。一旦设备被挂载,它就可以在挂载点,如“安装在”栏所列。
您应该du
在挂载点上或挂载点的某个地方运行以计算文件系统的使用情况。例如:
sudo du -sh /home
你正在做的是询问设备列表在虚拟文件系统中使用了多少空间/dev
。这没什么,因为它是纯虚拟的。
答案2
此类设备/dev/sda
是一种特殊的文件,可用于访问某些内核函数。您可以使用以下方式创建设备姆诺德。
du
将设备像任何其他文件一样对待,并显示它们在文件系统中使用的大小(始终为 0)。
答案3
我偶然发现了这个旧帖子,对于任何想要找到解决方案来列出文件大小的人来说,当“du”在已安装的虚拟文件系统上给出 0 大小输出时,只需添加“-b”标志。就像这样:
du -sbh <path>
下面的方法也将有效(包含在“-b”标志中):
du -sh --apparent-size <path>
答案4
df
嗯,众所周知,显示的可用空间与驱动器空间量减去已用空间之间存在差异du
(因为块大小和开销等),但这不是您在这里要问的......
du
在已安装的文件系统上工作。您正尝试让它在设备和分区上工作。如果您想查看某个空闲设备上的空间,请循环遍历其分区,安装它们,然后du
使用其--one-file-system
(又名-x
)参数运行。
例如:
sudo mount /dev/sda1 /mnt
sudo du -shx /mnt/
sudo umount /mnt/
# repeat for sda2, sdb1, etc