Export block devices list as JSON
and parse using jq
utility.
List block devices as JSON
and print the size using human-readable format.
$ lsblk --json
{ "blockdevices": [ {"name":"loop0", "maj:min":"7:0", "rm":false, "size":"95,6M", "ro":true, "type":"loop", "mountpoint":"/snap/poedit/28"}, {"name":"loop2", "maj:min":"7:2", "rm":false, "size":"55,5M", "ro":true, "type":"loop", "mountpoint":"/snap/core18/1988"}, {"name":"loop3", "maj:min":"7:3", "rm":false, "size":"61,7M", "ro":true, "type":"loop", "mountpoint":"/snap/core20/975"}, {"name":"loop4", "maj:min":"7:4", "rm":false, "size":"55,4M", "ro":true, "type":"loop", "mountpoint":"/snap/core18/1997"}, {"name":"loop5", "maj:min":"7:5", "rm":false, "size":"162,9M", "ro":true, "type":"loop", "mountpoint":"/snap/gnome-3-28-1804/145"}, {"name":"loop6", "maj:min":"7:6", "rm":false, "size":"64,8M", "ro":true, "type":"loop", "mountpoint":"/snap/gtk-common-themes/1514"}, {"name":"loop7", "maj:min":"7:7", "rm":false, "size":"219M", "ro":true, "type":"loop", "mountpoint":"/snap/gnome-3-34-1804/66"}, {"name":"loop8", "maj:min":"7:8", "rm":false, "size":"138,9M", "ro":true, "type":"loop", "mountpoint":"/snap/chromium/1564"}, {"name":"loop9", "maj:min":"7:9", "rm":false, "size":"131,6M", "ro":true, "type":"loop", "mountpoint":"/snap/docker/796"}, {"name":"loop10", "maj:min":"7:10", "rm":false, "size":"215,4M", "ro":true, "type":"loop", "mountpoint":"/snap/rpi-imager/170"}, {"name":"loop11", "maj:min":"7:11", "rm":false, "size":"217,9M", "ro":true, "type":"loop", "mountpoint":"/snap/gnome-3-34-1804/60"}, {"name":"loop12", "maj:min":"7:12", "rm":false, "size":"96,3M", "ro":true, "type":"loop", "mountpoint":"/snap/poedit/27"}, {"name":"loop13", "maj:min":"7:13", "rm":false, "size":"50,7M", "ro":true, "type":"loop", "mountpoint":"/snap/snap-store/481"}, {"name":"loop14", "maj:min":"7:14", "rm":false, "size":"32,3M", "ro":true, "type":"loop", "mountpoint":"/snap/snapd/11402"}, {"name":"loop15", "maj:min":"7:15", "rm":false, "size":"156M", "ro":true, "type":"loop", "mountpoint":"/snap/rpi-imager/166"}, {"name":"loop16", "maj:min":"7:16", "rm":false, "size":"51M", "ro":true, "type":"loop", "mountpoint":"/snap/snap-store/518"}, {"name":"loop17", "maj:min":"7:17", "rm":false, "size":"32,3M", "ro":true, "type":"loop", "mountpoint":"/snap/snapd/11588"}, {"name":"loop18", "maj:min":"7:18", "rm":false, "size":"5,5M", "ro":true, "type":"loop", "mountpoint":"/snap/notepad-plus-plus/260"}, {"name":"loop19", "maj:min":"7:19", "rm":false, "size":"303,1M", "ro":true, "type":"loop", "mountpoint":"/snap/wine-platform-5-stable/16"}, {"name":"loop20", "maj:min":"7:20", "rm":false, "size":"337,7M", "ro":true, "type":"loop", "mountpoint":"/snap/wine-platform-runtime/216"}, {"name":"loop21", "maj:min":"7:21", "rm":false, "size":"65,1M", "ro":true, "type":"loop", "mountpoint":"/snap/gtk-common-themes/1515"}, {"name":"loop22", "maj:min":"7:22", "rm":false, "size":"138,9M", "ro":true, "type":"loop", "mountpoint":"/snap/chromium/1568"}, {"name":"sda", "maj:min":"8:0", "rm":false, "size":"447,1G", "ro":false, "type":"disk", "mountpoint":null, "children": [ {"name":"sda1", "maj:min":"8:1", "rm":false, "size":"1M", "ro":false, "type":"part", "mountpoint":null}, {"name":"sda2", "maj:min":"8:2", "rm":false, "size":"513M", "ro":false, "type":"part", "mountpoint":"/boot/efi"}, {"name":"sda3", "maj:min":"8:3", "rm":false, "size":"732M", "ro":false, "type":"part", "mountpoint":"/boot"}, {"name":"sda4", "maj:min":"8:4", "rm":false, "size":"445,9G", "ro":false, "type":"part", "mountpoint":null, "children": [ {"name":"sda4_crypt", "maj:min":"253:0", "rm":false, "size":"445,9G", "ro":false, "type":"crypt", "mountpoint":null, "children": [ {"name":"vgubuntu-root", "maj:min":"253:1", "rm":false, "size":"444,9G", "ro":false, "type":"lvm", "mountpoint":"/"}, {"name":"vgubuntu-swap_1", "maj:min":"253:2", "rm":false, "size":"980M", "ro":false, "type":"lvm", "mountpoint":"[SWAP]"} ] } ] } ] }, {"name":"sdb", "maj:min":"8:16", "rm":true, "size":"14,8G", "ro":true, "type":"disk", "mountpoint":null, "children": [ {"name":"sdb1", "maj:min":"8:17", "rm":true, "size":"14,8G", "ro":true, "type":"part", "mountpoint":"/media/milosz/3363-6136"} ] }, {"name":"sr0", "maj:min":"11:0", "rm":true, "size":"1024M", "ro":false, "type":"rom", "mountpoint":null} ] }
List block devices as JSON
, exclude loop devices, print the name, filesystem type and size using bytes.
$ lsblk --output NAME,FSTYPE,SIZE --exclude 7 --bytes --json
{ "blockdevices": [ {"name":"sda", "fstype":null, "size":480103981056, "children": [ {"name":"sda1", "fstype":null, "size":1048576}, {"name":"sda2", "fstype":"vfat", "size":537919488}, {"name":"sda3", "fstype":"ext4", "size":767557632}, {"name":"sda4", "fstype":"crypto_LUKS", "size":478795530240, "children": [ {"name":"sda4_crypt", "fstype":"LVM2_member", "size":478778753024, "children": [ {"name":"vgubuntu-root", "fstype":"ext4", "size":477748002816}, {"name":"vgubuntu-swap_1", "fstype":"swap", "size":1027604480} ] } ] } ] }, {"name":"sdb", "fstype":null, "size":15931539456, "children": [ {"name":"sdb1", "fstype":"vfat", "size":15927345152} ] }, {"name":"sr0", "fstype":null, "size":1073741312} ] }
Display all available information about specific filesystem as JSON
, ignore dependencies and print the size using human-readable format.
$ lsblk --output-all --nodeps --json /dev/mapper/sda4_crypt
{ "blockdevices": [ {"name":"sda4_crypt", "kname":"dm-0", "path":"/dev/mapper/sda4_crypt", "maj:min":"253:0", "fsavail":null, "fssize":null, "fstype":"LVM2_member", "fsused":null, "fsuse%":null, "fsver":"LVM2 001", "mountpoint":null, "label":null, "uuid":"LUpQBF-ziSa-tjbo-oS02-TuxS-mQLK-6rX2Cm", "ptuuid":null, "pttype":null, "parttype":null, "parttypename":null, "partlabel":null, "partuuid":null, "partflags":null, "ra":128, "ro":false, "rm":false, "hotplug":false, "model":null, "serial":null, "size":"445,9G", "state":"running", "owner":"root", "group":"disk", "mode":"brw-rw----", "alignment":0, "min-io":512, "opt-io":0, "phy-sec":512, "log-sec":512, "rota":false, "sched":null, "rq-size":128, "type":"crypt", "disc-aln":0, "disc-gran":"512B", "disc-max":"2G", "disc-zero":false, "wsame":"0B", "wwn":null, "rand":false, "pkname":null, "hctl":null, "tran":null, "subsystems":"block", "rev":null, "vendor":null, "zoned":"none", "dax":false} ] }
List only children devices.
$ lsblk --json | jq --raw-output '.. | .children? | .[]? | .name'
sda1 sda2 sda3 sda4 sda4_crypt vgubuntu-root vgubuntu-swap_1 sdb1
Display basic information about mounted filesystems with exception of those mount point starts with /snap/
directory.
$ lsblk --fs --json | jq --raw-output --compact-output '.. | select(.mountpoint? and .mountpoint!=null and (.mountpoint|startswith("/snap/")|not)) | [.name,.fstype,.mountpoint]'
["sda2","vfat","/boot/efi"] ["sda3","ext4","/boot"] ["vgubuntu-root","ext4","/"] ["vgubuntu-swap_1","swap","[SWAP]"] ["sdb1","vfat","/media/milosz/3363-6136"]
Display some basic information on available block devices with exception of loop devices.
$ lsblk --output-all --exclude 7 --json | jq --raw-output --compact-output '.. | select(.name? and .fstype?) | {name,fstype,mountpoint,sched}'
{"name":"sda2","fstype":"vfat","mountpoint":"/boot/efi","sched":"mq-deadline"} {"name":"sda3","fstype":"ext4","mountpoint":"/boot","sched":"mq-deadline"} {"name":"sda4","fstype":"crypto_LUKS","mountpoint":null,"sched":"mq-deadline"} {"name":"sda4_crypt","fstype":"LVM2_member","mountpoint":null,"sched":null} {"name":"vgubuntu-root","fstype":"ext4","mountpoint":"/","sched":null} {"name":"vgubuntu-swap_1","fstype":"swap","mountpoint":"[SWAP]","sched":null} {"name":"sdb1","fstype":"vfat","mountpoint":"/media/milosz/3363-6136","sched":"mq-deadline"} {"name":"sde","fstype":"xfs","mountpoint":null,"sched":"mq-deadline"}
Display mounted block devices with less then 20GB of available space and over 50% of used space.
$ (echo -e "Device;Free space (bytes);Used space%"; lsblk --output-all --exclude 7 --bytes --json | jq --raw-output --compact-output '.. | select(.fsavail?) | select(.fsavail | tonumber / 1024 / 1024 / 1024 < 20) | select(."fsuse%" | rtrimstr("%") | tonumber > 50) | [.name, .fsavail, ."fsuse%" ] | join(";")') | column -t --separator ";"
Device Free space (bytes) Used space% sda3 252354560 59%