lsblk 是否总是按升序列出磁盘?

lsblk 是否总是按升序列出磁盘?

是否lsblk始终按升序列出磁盘(每个设备字母加一)并排序?

例如:

lsblk | awk '{print $1}'
NAME
fd0
sda
├─sda1
└─sda2
├─vg00-lv_root
├─vg00-lv_swap
└─vg00-lv_var
sdb
sdc
sdd
sde
sdf
sdg
sdh
sdi
sdj
sdk

我们不想像下面的例子那样得到它

无序磁盘列表示例(示例的输出已编辑)

lsblk | awk '{print $1}'
NAME
fd0
sda
├─sda1
└─sda2
├─vg00-lv_root
├─vg00-lv_swap
└─vg00-lv_var
sdb
sdc
sdd
sde
sdi
sdj
sdk
sdf
sdg
sdh

sdd以代替开头的磁盘示例sdb(再次为示例进行编辑)

lsblk | awk '{print $1}'
NAME
fd0
sda
├─sda1
└─sda2
├─vg00-lv_root
├─vg00-lv_swap
└─vg00-lv_var
sdd
sde
sdf
sdg
sdh
sdi
sdj
sdk
sdl
sdm

答案1

lsblk(1)手册页:

默认输出以及 和 等选项的默认输出--fs可能--topology会发生变化。因此,只要有可能,您应该避免在脚本中使用默认输出。始终--output columns-list在需要稳定输出的环境中使用来显式定义预期列。

如果您需要对输出进行排序,我建议使用-o(输出列)和-x(排序列)选项。用于lsblk --help获取列名称的列表。

例如:

lsblk -o NAME -x NAME

相关内容