是否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