]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsblk: add PATH column
authorKarel Zak <kzak@redhat.com>
Tue, 10 Jul 2018 08:33:18 +0000 (10:33 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 10 Jul 2018 08:33:18 +0000 (10:33 +0200)
$ lsblk -o+PATH
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT    PATH
sda           8:0    0 223.6G  0 disk               /dev/sda
├─sda1        8:1    0   200M  0 part /boot/efi     /dev/sda1
├─sda2        8:2    0   200M  0 part /boot         /dev/sda2
├─sda3        8:3    0 130.3G  0 part               /dev/sda3
├─sda4        8:4    0    50G  0 part /             /dev/sda4
├─sda5        8:5    0  35.1G  0 part               /dev/sda5
└─sda6        8:6    0   7.8G  0 part               /dev/sda6

Requested-by: Marcel Partap <mpartap@gmx.net>
Signed-off-by: Karel Zak <kzak@redhat.com>
misc-utils/lsblk.c

index 815ba1d71ea7487cf8c37054165fa55c42506e93..2753375da5c1a157d9ffeb240e41631a20453364 100644 (file)
@@ -87,6 +87,7 @@ static int column_id_to_number(int id);
 enum {
        COL_NAME = 0,
        COL_KNAME,
+       COL_PATH,
        COL_MAJMIN,
        COL_FSTYPE,
        COL_TARGET,
@@ -168,6 +169,7 @@ static struct colinfo infos[] = {
        [COL_NAME]   = { "NAME",    0.25, SCOLS_FL_TREE | SCOLS_FL_NOEXTREMES, N_("device name") },
        [COL_KNAME]  = { "KNAME",   0.3, 0, N_("internal kernel device name") },
        [COL_PKNAME] = { "PKNAME",   0.3, 0, N_("internal parent kernel device name") },
+       [COL_PATH]   = { "PATH",    0.3,  0, N_("path to the device node") },
        [COL_MAJMIN] = { "MAJ:MIN", 6, 0, N_("major:minor device number"), COLTYPE_SORTNUM },
        [COL_FSTYPE] = { "FSTYPE",  0.1, SCOLS_FL_TRUNC, N_("filesystem type") },
        [COL_TARGET] = { "MOUNTPOINT", 0.10, SCOLS_FL_TRUNC, N_("where the device is mounted") },
@@ -948,6 +950,10 @@ static void set_scols_data(struct blkdev_cxt *cxt, int col, int id, struct libsc
                if (cxt->parent)
                        str = mk_name(cxt->parent->name);
                break;
+       case COL_PATH:
+               if (cxt->filename)
+                       str = xstrdup(cxt->filename);
+               break;
        case COL_OWNER:
        {
                struct passwd *pw = st_rc ? NULL : getpwuid(cxt->st.st_uid);