Command-Line
如何獲取塊特殊文件的大小?
我需要能夠確定塊特殊文件的大小。
例如,給定
/dev/sda
,我需要一個提供設備大小的命令。(大小是指容量,因為這是一個儲存設備。)理由:
我可以在設備中儲存資訊:
echo "12345" >/dev/sda #需要以root身份執行
(順便說一句,不要執行那個命令……除非你不關心你的數據。)
但是,我需要知道我可以在設備上儲存多少數據,但我不知道該怎麼做。
blockdev
提供了一種設置/獲取塊設備屬性的方法。要以字節為單位獲取大小:blockdev --getsize64 /dev/sda
或者,一些資訊可在
/sys/block/<device>
目錄下獲得,例如cat /sys/block/sda/size
給出以 512 字節塊為單位測量的 sda 大小。參見/sys/block/sda/sda1/size
sda1 分區大小。對於 KiB 中的 sda 大小
echo $[ $(cat /sys/block/sda/size) / 2 ]
以字節為單位的 sda 大小
echo $[ $(cat /sys/block/sda/size) * 512 ]
解析
fdisk -l /dev/sda
應該給你確切的資訊:Disk /dev/sda: 68.7 GB, 68719476736 bytes 255 heads, 63 sectors/track, 8354 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000bd83f Device Boot Start End Blocks Id System /dev/sda1 * 1 8009 64325632 83 Linux /dev/sda2 8009 8355 2780161 5 Extended /dev/sda5 8009 8355 2780160 82 Linux swap / Solaris