在脚本中,partx 比 fdisk 更好地读取分区表吗?

在脚本中,partx 比 fdisk 更好地读取分区表吗?

我有一些使用“fdisk -l”输出的脚本在不同版本的 Linux 上失败,因为 fdisk 的输出略有不同。

“partx --show”命令似乎是大多数系统上的标准命令(与 fdisk 一起打包)。

如果我转换脚本来解析“partx --show”的输出,这些脚本随着时间的推移会表现得更好吗?您使用partx的脚本在各个版本中是否稳定或可移植?

答案1

我建议使用sfdiskutil-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"}
        ]
    }
}

相关内容