Add description of default sorting behavior to zfs_list.8

Addresses https://github.com/openzfs/zfs/issues/15713.

The sorting logic is all in cmd/zfs/zfs_iter.c.  I borrowed
where I could from the comments in the source code, but please
note that the comment to zfs_sort() is a little imprecise, or at
least incomplete, because it doesn't give any indication of the
chronological sort that will be used by default for snapshots in
zfs_compare().

While adding this description, I took the liberty to copy-edit
the rest of the file lightly.

In those edits, I've removed "If specified, you can list
property information by the absolute pathname or the relative
pathname" because, in context, it seems more confusing than
helpful.

Signed-off-by: Shawn Bayern <sbayern@law.fsu.edu>
This commit is contained in:
Shawn Bayern 2024-02-09 00:04:09 -05:00
parent 6dccdf501e
commit a6b5da36d2
1 changed files with 38 additions and 19 deletions

View File

@ -29,7 +29,7 @@
.\" Copyright 2018 Nexenta Systems, Inc. .\" Copyright 2018 Nexenta Systems, Inc.
.\" Copyright 2019 Joyent, Inc. .\" Copyright 2019 Joyent, Inc.
.\" .\"
.Dd March 16, 2022 .Dd February 8, 2024
.Dt ZFS-LIST 8 .Dt ZFS-LIST 8
.Os .Os
. .
@ -48,27 +48,26 @@
.Oo Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot Oc Ns .Oo Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot Oc Ns
. .
.Sh DESCRIPTION .Sh DESCRIPTION
If specified, you can list property information by the absolute pathname or the By default, all file systems and volumes are displayed, with the following
relative pathname. fields:
By default, all file systems and volumes are displayed. .Sy name , Sy used , Sy available , Sy referenced , Sy mountpoint .
Snapshots are displayed if the Snapshots are displayed if the
.Sy listsnapshots .Sy listsnapshots
pool property is pool property is
.Sy on .Sy on
.Po the default is .Po the default is
.Sy off .Sy off
.Pc , .Pc
or if the or if the
.Fl t Sy snapshot .Fl t Sy snapshot
or or
.Fl t Sy all .Fl t Sy all
options are specified. options are specified.
The following fields are displayed: .Pp
.Sy name , Sy used , Sy available , Sy referenced , Sy mountpoint .
.Bl -tag -width "-H" .Bl -tag -width "-H"
.It Fl H .It Fl H
Used for scripting mode. Used for scripting mode.
Do not print headers and separate fields by a single tab instead of arbitrary Do not print headers, and separate fields by a single tab instead of arbitrary
white space. white space.
.It Fl d Ar depth .It Fl d Ar depth
Recursively display any children of the dataset, limiting the recursion to Recursively display any children of the dataset, limiting the recursion to
@ -80,7 +79,7 @@ of
will display only the dataset and its direct children. will display only the dataset and its direct children.
.It Fl o Ar property .It Fl o Ar property
A comma-separated list of properties to display. A comma-separated list of properties to display.
The property must be: Each property must be:
.Bl -bullet -compact .Bl -bullet -compact
.It .It
One of the properties described in the One of the properties described in the
@ -118,30 +117,41 @@ section of
or the value or the value
.Sy name .Sy name
to sort by the dataset name. to sort by the dataset name.
Multiple properties can be specified at one time using multiple Multiple properties can be specified to operate together using multiple
.Fl s .Fl s
property options. or
.Fl S
options.
Multiple Multiple
.Fl s .Fl s
options are evaluated from left to right in decreasing order of importance. and
The following is a list of sorting criteria: .Fl S
options are evaluated from left to right to supply sort keys in
decreasing order of priority.
Property types operate as follows:
.Bl -bullet -compact .Bl -bullet -compact
.It .It
Numeric types sort in numeric order. Numeric types sort in numeric order.
.It .It
String types sort in alphabetical order. String types sort in alphabetical order.
.It .It
Types inappropriate for a row sort that row to the literal bottom, regardless of Types inappropriate for a row sort that row to the literal bottom,
the specified ordering. regardless of the specified ordering.
.El .El
.Pp .Pp
If no sorting options are specified the existing behavior of If no sort columns are specified, or if two lines of output would sort
.Nm zfs Cm list equally across all specified columns, then datasets and bookmarks are
is preserved. sorted by name, whereas snapshots are sorted first by the name of their
dataset and then by the time of their creation.
When no sort columns are specified but snapshots are listed, this
default behavior causes snapshots to be grouped under their datasets in
chronological order by creation time.
.It Fl S Ar property .It Fl S Ar property
Same as Same as
.Fl s , .Fl s ,
but sorts by property in descending order. but sorts by
.Ar property
in descending order.
.It Fl t Ar type .It Fl t Ar type
A comma-separated list of types to display, where A comma-separated list of types to display, where
.Ar type .Ar type
@ -155,6 +165,15 @@ or
For example, specifying For example, specifying
.Fl t Sy snapshot .Fl t Sy snapshot
displays only snapshots. displays only snapshots.
.Sy fs ,
.Sy snap ,
or
.Sy vol
can be used as aliases for
.Sy filesystem ,
.Sy snapshot ,
or
.Sy volume .
.El .El
. .
.Sh EXAMPLES .Sh EXAMPLES