给定一个块设备(例如,/dev/sda
),如何在脚本中确定其分区(如果有)的名称(即无需用户交互)?
答案1
lsblk
打印出所有相关的块设备。这包括所述设备的分区。由于它当然包括设备本身并且lsblk
不允许排除特定设备,因此下面的示例解决方案仅使用 inverted grep
:
lsblk -o KNAME -n /dev/mmcblk0 | grep -v "^mmcblk0$"
对于完整路径(这也简化了 grep 字符串的生成),可以使用-p
,例如:
lsblk -po KNAME -n /dev/mmcblk0 | grep -v "^/dev/mmcblk0$"
答案2
您可以使用一些工具来执行此操作。我经常使用的工具之一是fdisk
. fdisk 会列出块设备的分区,并为您说明确切的大小。fdisk
是一个非常通用的程序,它还可以修改分区在存储方面的内部属性,因此使用它时要非常小心。
在列出分区的情况下,您只需执行以下命令:
fdisk -l <name of block device>
。从这一点上,您就可以看到您所寻找的分区的确切大小、名称和类型。如果您想fdisk
进一步用于与硬盘相关的其他用途,请使用以下man
命令打开手册页fdisk
:
man fdisk