【发布时间】:2016-08-04 10:55:18
【问题描述】:
在 bash 脚本中,我需要获取总磁盘大小和整个磁盘的当前使用大小。
我知道我可以使用以下命令获得总磁盘大小而无需成为 root:
cat /sys/block/sda/size
此命令将输出设备 SDA 上的块数。 将其乘以 512,您将获得此设备上的字节数。 这对于总磁盘大小来说已经足够了。
现在是当前使用的空间。我想在不成为 root 的情况下获得这个值。
我可以假设设备名称是 SDA。
现在有这个命令:df
我以为我可以使用这个命令,但似乎这个命令只输出当前挂载的分区的数据。
有没有一种方法可以获取磁盘 SDA 上使用的总空间,而无需成为 root 并且不需要挂载所有分区?
让我们假设以下示例:
/dev/sda1 80GB Linux partition 20GB Used
/dev/sda2 80GB Linux Home partition 20GB Used
/dev/sda3 100GB Windows Parition. 30GB Used
假设我的 SDA 磁盘像上面那样分区。但是当我在 Linux 上时,我的 Windows 分区 (sda3) 没有挂载。
df 的输出总共会给我 40 GB 已用,因此它不考虑 sda3。
又是一个问题: 有没有办法无需 root 让我总共获得 70 GB 的已用空间?
【问题讨论】:
-
fdisk -l使用 sudo? -
就像我的问题说我知道 sudo 的方式。然而,这个程序不会以 sudo 权限运行。至少我尽量不这样做。我真的需要一个没有 sudo 的解决方案
-
lsblk | tr -s ' ' |剪切 -d ' ' -f1,4 |column -t
-
@Joda
lsblk显示每个分区的总空间量。我知道如何得到这些。但我问的是每个分区的可用空间总量,而它们是否已安装无关紧要。
标签: linux bash partitioning