0

I intend to get a list of all partitions with their corresponding types but arranged in the proper tree order.

This is what I get with 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

But I want it to display this way

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

I tried with -s -l option, but the results became much weirder. How do I format it properly, but still get the correct order as the tree? I would not mind if there is only 1 space between name and type.

Jeff Schaller
  • 67,283
  • 35
  • 116
  • 255
Jones G
  • 115

1 Answers1

2

This should do it:

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

If you cannot ask lsblk to format the output as you want, you can pipe it and change it.

For example, if the tab is really important:

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