在bash脚本中,我需要获取整个磁盘的总磁盘大小和当前使用的大小。
我知道我可以使用此命令获取总磁盘大小而无需root:
cat /sys/block/sda/size
此命令将输出设备SDA上的块数。 将它与512相乘,您将获得此设备上的字节数。 这足以满足总磁盘大小。
现在用于当前使用的空间。我希望得到这个价值而不是根。
我可以假设设备名称是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的已用空间?
答案 0 :(得分:1)
我认为stat
命令应该有所帮助。您可以从/proc/partitions
获取分区。
示例stat
命令输出:
$ stat -f /dev/sda1
File: "/dev/sda1"
ID: 0 Namelen: 255 Type: tmpfs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 237009 Free: 236970 Available: 236970
Inodes: Total: 237009 Free: 236386
答案 1 :(得分:-1)
您可以使用df
。
df -h --output='used' /home
Used
3.2G
如果您将其与某些sed
或awk
结合使用,则可以获得您所寻求的价值