首页 文章

在linux中获得HDD的可用空间

提问于
浏览
5

在bash脚本中,我需要获取整个磁盘的总磁盘大小和当前使用的大小 .

我知道我可以使用此命令获取总磁盘大小而无需root用户:

cat /sys/block/sda/size

此命令将输出设备SDA上的块数 . 将它乘以512,您将获得此设备上的字节数 . 这足以满足总磁盘大小 .

现在为当前使用的空间 . 我希望得到这个 Value 而不是根 . 我可以假设设备名称是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 .

问题是:有没有办法让我获得70 GB的总空间?#2443875_

2 回答

  • 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

    你可以使用 df .

    df -h --output='used' /home 
    Used
    3.2G
    

    如果将其与某些 sedawk 结合使用,则可以获得所需的值

相关问题