如何在 Linux 中使用命令行获取硬盘的总大小,无需 root 权限?

如何在 Linux 中使用命令行获取硬盘的总大小,无需 root 权限?

我试图找出我的硬盘总大小df -h,但它打印每个分区的大小并要求sudo

有没有什么方法可以使用命令行获取硬盘的总大小,而不需要 root 权限?

答案1

一种黑客方法是sudo通过读取系统日志来绕过:

dmesg | grep blocks

请注意,这可能并不理想,所以您的里程可能会有所不同......

答案2

如果您想要以字节为单位的大小和仅用于脚本的值:

lsblk -b --output SIZE -n -d /dev/sdX
12220202

-b:以字节为单位输出。
-n:没有标题。我们只想要纯数字值。
--输出大小:仅打印尺寸列。
-d /dev/sdXn:我们想知道其大小的设备。X 例如为 d,n 例如为 1,表示磁盘 d 的第一个分区。

优点:

  • 不需要 root 权限
  • 不需要 grep
  • lsblk 在大多数 Linux 系统上可用

答案3

cat /sys/block/sda/size

但是大小是以块为基础的单位
我找到了这个答案这里.
其他解决方案这里

或者你可以尝试u盘

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'

答案4

我现在不在我的 Linux 机器旁,但你可以尝试:

hdparm -I /dev/sda

或者

fdisk -l

这可能还需要 sudo。

我没看到任何地方说 df 需要 root 权限。这很奇怪。

相关内容