如何在 lsblk 中仅输出开发名称和类型?

如何在 lsblk 中仅输出开发名称和类型?

我打算获取所有分区及其相应类型的列表,但按正确的树顺序排列。

这就是我得到的lsblk -o NAME,TYPE -i

sda             disk
|-sda1          part
|-sda2          part
|-sda3          part
| |-2cl-root    lvm
| |-2cl-swap    lvm
| |-2cl-home    lvm
| |-2cl-data2   lvm
| `-2cl-data4   lvm
|-sda4          part
| |-1cl00-data3 lvm
|   |-asf1      lvm
|   `-asf2      lvm  
`-sda5          part
sdb             disk
`-sdb1          part
  `-md126       raid1
sdc             disk
`-sdc1          part
  `-md126       raid1
sdd             disk
`-sdd1          part
  `-md127       raid0
    `-3-data6   lvm
sde             disk
`-sde1          part
  `-md127       raid0
    `-3-data6   lvm
sr0             rom

但我希望它以这种方式显示

sda             disk
sda1            part
sda2            part
sda3            part
2cl-root        lvm
2cl-swap        lvm
2cl-home        lvm
2cl-data2       lvm
2cl-data4       lvm
sda4            part
1cl00-data3     lvm
asf1            lvm
asf2            lvm  
sda5            part
sdb             disk
sdb1            part
md126           raid1
sdc             disk
sdc1            part
md126           raid1
sdd             disk
sdd1            part
md127           raid0
3-data6         lvm
sde             disk
sde1            part
md127           raid0
3-data6         lvm
sr0             rom

我尝试了-s -l选项,但结果变得更加奇怪。如何正确格式化它,但仍然获得正确的树顺序?如果名称和类型之间只有 1 个空格,我不会介意。

答案1

这应该可以做到:

lsblk -o NAME,TYPE -n -i -r

如果您无法要求lsblk按照您想要的方式格式化输出,您可以通过管道传输并更改它。

例如,如果该选项卡确实很重要:

lsblk -o NAME,TYPE -n -i -r | tr ' ' '\t'

相关内容