]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - misc-utils/lsblk.8
lsblk: allow to specify tree column
[thirdparty/util-linux.git] / misc-utils / lsblk.8
index 8c9740c11fd2a4b4daf673d0932067b0693cad09..07cd7a16fbbb1fdabde72cc9c39174bf939e9483 100644 (file)
@@ -1,10 +1,9 @@
-.\" -*- nroff -*-
 .TH LSBLK 8 "February 2013" "util-linux" "System Administration"
 .SH NAME
 lsblk \- list block devices
 .SH SYNOPSIS
 .B lsblk
-.RB [ options ]
+[options]
 .RI [ device ...]
 .SH DESCRIPTION
 .B lsblk
@@ -14,7 +13,9 @@ command reads the
 .B sysfs
 filesystem and
 .B udev db
-to gather information.
+to gather information. If the udev db is not available or lsblk is compiled without udev support than it
+tries to read LABELs, UUIDs and filesystem types from the block device. In this case root permissions
+are necessary.
 .PP
 The command prints all block devices (except RAM disks) in a tree-like format
 by default.  Use
@@ -22,13 +23,15 @@ by default.  Use
 to get a list of all available columns.
 .PP
 The default output, as well as the default output from options like
-.BR \-\-fs
+.B \-\-fs
 and
 .BR \-\-topology ,
 is subject to change.  So whenever possible, you should avoid using default
 outputs in your scripts.  Always explicitly define expected columns by using
 .B \-\-output
 .I columns-list
+and
+.B \-\-list
 in environments where a stable output is required.
 .PP
 Note that
@@ -42,7 +45,7 @@ before lsblk to synchronize with udev.
 .SH OPTIONS
 .TP
 .BR \-a , " \-\-all"
-Also list empty devices.  (By default they are skipped.)
+Also list empty devices and RAM disk devices.
 .TP
 .BR \-b , " \-\-bytes"
 Print the SIZE column in bytes rather than in a human-readable format.
@@ -54,14 +57,23 @@ Print information about the discarding capabilities (TRIM, UNMAP) for each devic
 Do not print holder devices or slaves.  For example, \fBlsblk --nodeps /dev/sda\fR prints
 information about the sda device only.
 .TP
+.BR \-E , " \-\-dedup " \fIcolumn\fP
+Use \fIcolumn\fP as a de-duplication key to de-duplicate output tree. If the
+key is not available for the device, or the device is a partition and parental
+whole-disk device provides the same key than the device is always printed.
+
+The usual use case is to de-duplicate output on system multi-path devices, for
+example by \fB\-E WWN\fR.
+.TP
 .BR \-e , " \-\-exclude " \fIlist\fP
 Exclude the devices specified by the comma-separated \fIlist\fR of major device numbers.
-Note that RAM disks (major=1) are excluded by default.  The filter is applied to the
-top-level devices only.
+Note that RAM disks (major=1) are excluded by default if \fB\-\-all\fR is no specified.
+The filter is applied to the top-level devices only. This maybe be confusing for
+\fB\-\-list\fR output format where hierarchy of the devices is not obvious.
 .TP
 .BR \-f , " \-\-fs"
 Output info about filesystems.  This option is equivalent to
-.BR -o\ NAME,FSTYPE,LABEL,MOUNTPOINT .
+.BR -o\ NAME,FSTYPE,LABEL,UUID,MOUNTPOINT .
 The authoritative information about filesystems and raids is provided by the
 .BR blkid (8)
 command.
@@ -71,13 +83,23 @@ Display help text and exit.
 .TP
 .BR \-I , " \-\-include " \fIlist\fP
 Include devices specified by the comma-separated \fIlist\fR of major device numbers.
-The filter is applied to the top-level devices only.
+The filter is applied to the top-level devices only. This maybe be confusing for
+\fB\-\-list\fR output format where hierarchy of the devices is not obvious.
 .TP
 .BR \-i , " \-\-ascii"
 Use ASCII characters for tree formatting.
 .TP
+.BR \-J , " \-\-json"
+Use JSON output format.
+.TP
 .BR \-l , " \-\-list"
-Produce output in the form of a list.
+Produce output in the form of a list. The output does not provide information
+about relationships between devices and since version 2.34 every device is
+printed only once.
+.TP
+.BR \-M , " \-\-merge"
+Group parents of sub-trees to provide more readable output for RAIDs and
+Multi-path devices. The tree-like output is required.
 .TP
 .BR \-m , " \-\-perms"
 Output info about device owner, group and mode.  This option is equivalent to
@@ -94,7 +116,7 @@ to get a list of all supported columns.
 The default list of columns may be extended if \fIlist\fP is
 specified in the format \fI+list\fP (e.g. \fBlsblk -o +UUID\fP).
 .TP
-.BR \-O , " \-\-output-all "
+.BR \-O , " \-\-output\-all "
 Output all available columns.
 .TP
 .BR \-P , " \-\-pairs"
@@ -112,18 +134,34 @@ Produce output in raw format.  All potentially unsafe characters are hex-escaped
 Output info about SCSI devices only.  All partitions, slaves and holder devices are ignored.
 .TP
 .BR \-s , " \-\-inverse"
-Print dependencies in inverse order.
+Print dependencies in inverse order. If the \fB\-\-list\fR output is requested then
+the lines are still ordered by dependencies.
+.TP
+.BR \-T , " \-\-tree" [ =\fIcolumn ]
+Force tree-like output format.  If \fIcolumn\fP is specified, then a tree is printed in the column.
+The default is NAME column.
 .TP
 .BR \-t , " \-\-topology"
 Output info about block-device topology.
 This option is equivalent to
-.BR -o\ NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,WSAME .
+.BR -o\ NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME .
 .TP
 .BR \-V , " \-\-version"
 Display version information and exit.
 .TP
 .BR \-x , " \-\-sort " \fIcolumn\fP
-Sort output lines by output \fIcolumn\fP.
+Sort output lines by \fIcolumn\fP. This option enables \fB\-\-list\fR output format by default.
+It is possible to use the option \fI\-\-tree\fP to force tree-like output and
+than the tree branches are sorted by the \fIcolumn\fP.
+.TP
+.BR \-z , " \-\-zoned"
+Print the zone model for each device.
+.TP
+.BR " \-\-sysroot " \fIdirectory\fP
+Gather data for a Linux instance other than the instance from which the lsblk
+command is issued.  The specified directory is the system root of the Linux
+instance to be inspected.  This option is designed for the testing purpose.
+
 .SH NOTES
 For partitions, some information (e.g. queue attributes) is inherited from the
 parent device.
@@ -132,26 +170,41 @@ The
 .B lsblk
 command needs to be able to look up each block device by major:minor numbers,
 which is done by using
-.BR /sys/dev/block .
+.IR /sys/dev/block .
 This sysfs block directory appeared in kernel 2.6.27 (October 2008).
 In case of problems with a new enough kernel, check that CONFIG_SYSFS
 was enabled at the time of the kernel build.
+
+.SH RETURN CODES
+.IP 0
+success
+.IP 1
+failure
+.IP 32
+none of specified devices found
+.IP 64
+some specified devices found, some not found
+
 .SH AUTHORS
 .nf
 Milan Broz <mbroz@redhat.com>
 Karel Zak <kzak@redhat.com>
 .fi
 .SH ENVIRONMENT
+.IP LSBLK_DEBUG=all
+enables lsblk debug output.
 .IP LIBBLKID_DEBUG=all
 enables libblkid debug output.
 .IP LIBMOUNT_DEBUG=all
 enables libmount debug output.
 .IP LIBSMARTCOLS_DEBUG=all
 enables libsmartcols debug output.
+.IP LIBSMARTCOLS_DEBUG_PADDING=on
+use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG.
 .SH SEE ALSO
-.BR findmnt (8),
+.BR ls (1),
 .BR blkid (8),
-.BR ls (1)
+.BR findmnt (8)
 .SH AVAILABILITY
 The lsblk command is part of the util-linux package and is available from
-ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
+https://www.kernel.org/pub/linux/utils/util-linux/.