我有一些使用“fdisk -l”输出的脚本在不同版本的 Linux 上失败,因为 fdisk 的输出略有不同。
“partx --show”命令似乎是大多数系统上的标准命令(与 fdisk 一起打包)。
如果我转换脚本来解析“partx --show”的输出,这些脚本随着时间的推移会表现得更好吗?您使用partx的脚本在各个版本中是否稳定或可移植?
答案1
我建议使用sfdisk
util-linux 的另一部分来代替其中任何一个。为什么? sfdisk 的联机帮助页明确表示它是“用于对任何块设备进行分区的面向脚本的工具”,因此我希望它的输出是稳定的。 (据我所知,-d
输出已经稳定了很长一段时间)。
如果您正在编写 shell 脚本,-d
输出可能是最容易解析的。您还可以使用-l
和-o
来选择特定列。如果您正在编写一些其他脚本(Perl、Python 等)并且有一个足够新的 util-linux (2015年中期左右),然后-J
会给你 JSON。
-J
以下是如何使用该参数的示例: sudo sfdisk -J /dev/sda
。它的输出如下所示:
{
"partitiontable": {
"label":"gpt",
"id":"CA88994A-D99F-4347-89C2-6CCBC1B0765D",
"device":"/dev/sda",
"unit":"sectors",
"firstlba":34,
"lastlba":3907029134,
"sectorsize":512,
"partitions": [
{"node":"/dev/sda1", "start":2048, "size":7811072, "type":"0657FD6D-A4AB-43C4-84E5-0933C84B4F4F", "uuid":"EABE31D7-1E43-4385-97E1-A8C9C4549C72"},
{"node":"/dev/sda2", "start":7813120, "size":3899215872, "type":"0FC63DAF-8483-4772-8E79-3D69D8477DE4", "uuid":"EEBBAB54-0A5A-4B3F-9BEB-4FE10350EE2F"}
]
}
}