Querying ZFS Properties for Scripting
The zfs get
command supports the -H
and -o
options, which are designed for scripting. You can use the -H
option to omit header information and to replace white space with the Tab character. Uniform white space allows for easily parsable data. You can use the -o
option to customize the output in the following ways:
-
The literal
name
can be used with a comma-separated list of properties as defined in the Introducing ZFS Properties section. -
A comma-separated list of literal fields,
name
,value
,property
, andsource
, to be output followed by a space and an argument, which is a comma-separated list of properties.
The following example shows how to retrieve a single value by using the -H
and -o
options of zfs get
:
$ zfs get -H -o value compression tank/home
on
The -p
option reports numeric values as their exact values. For example, 1 MB would be reported as 1000000. This option can be used as follows:
$ zfs get -H -o value -p used tank/home
182983742
You can use the -r
option, along with any of the preceding options, to recursively retrieve the requested values for all descendents. The following example uses the -H
, -o
, and -r
options to retrieve the file system name and the value of the used
property for export/home
and its descendents, while omitting the header output:
$ zfs get -H -o name,value -r used export/home