如何获取块特殊文件的大小?

Nat*_*man 3 command-line size partition block-device

我需要能够确定块特殊文件的大小。

例如,给定/dev/sda,我需要一个命令来提供设备的大小。(我说的大小是指容量,因为这是一个存储设备。)


理由:

我可以通过以下方式在设备中存储信息:

echo "12345" >/dev/sda # 需要以 root 身份运行

(顺便说一句,不要运行该命令......除非你不关心你的数据。)

但是,我需要知道我可以在设备上存储多少数据,但我不知道该怎么做。

for*_*sck 5

blockdev提供了一种设置/获取块设备属性的方法。要获取以字节为单位的大小:

blockdev --getsize64 /dev/sda
Run Code Online (Sandbox Code Playgroud)

或者,一些信息在/sys/block/<device>目录下可用,例如cat /sys/block/sda/size给出以 512 字节块为单位测量的 sda 大小。请参阅/sys/block/sda/sda1/sizesda1 分区大小。

对于以 KiB 为单位的 sda 大小

echo $[  $(cat /sys/block/sda/size) / 2 ]
Run Code Online (Sandbox Code Playgroud)

以字节为单位的 sda 大小

echo $[  $(cat /sys/block/sda/size) * 512 ]
Run Code Online (Sandbox Code Playgroud)