ZFS-LIST(8)

πŸ’– zfs-list(8) πŸ’–

okay bestie, welcome to zfs-list(8) β€” straight out of the System Manager's Manual, and it's literally the glow-up your storage situation has been waiting for. ✨

🌸 NAME 🌸

zfs-list β€” list properties of ZFS datasets

it's giving "show me everything, king". πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

zfs list [-r|-d depth] [-Hp] [-j [--json-int]] [-o property[,property]…]
    [-s property]… [-S property]… [-t type[,type]…]
    [filesystem|volume|snapshot]…

πŸ¦‹ DESCRIPTION πŸ¦‹

so by default?? it shows you all the file systems and volumes, with these fields: name, used, available, referenced, mountpoint. no cap, that's just the starter pack. 🫢

Snapshots get displayed if the listsnapshots pool property is on (and heads up bestie, the default is off πŸ™ˆ) or if you pass -t snapshot or -t all. that's the vibe check for snapshots.

  • -H β€” this one's for scripting mode. it does not print headers, and it separates fields with a single tab instead of arbitrary white space. tidy. πŸ’…
  • -j, --json [--json-int] β€” prints the output in JSON format. add --json-int if you want the numbers printed in integer format instead of strings in the JSON output. json girlies rise 🧚
  • -d depth β€” recursively display any children of the dataset, but limit the recursion to depth. a depth of 1 shows only the dataset and its direct children. so like, one layer of the family tree. 🌈
  • -o property β€” a comma-separated list of properties to display. each property has to be:
    • one of the properties described in the β€œNative Properties” section of zfsprops(7)
    • a user property
    • the value name, to display the dataset name
    • the value space, to display space usage properties on file systems and volumes. this is a shortcut for specifying -o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume.
  • -p β€” displays numbers in parsable (exact) values. no rounding, no games. πŸ”₯
  • -r β€” recursively display any children of the dataset on the command line.
  • -s property β€” a property to sort the output by column in ascending order, based on the value of the property. the property must be one of the properties described in the β€œProperties” section of zfsprops(7), or the value name to sort by the dataset name. you can specify multiple properties to operate together using multiple -s or -S options. multiple -s and -S options are evaluated from left to right, supplying sort keys in decreasing order of priority. property types operate like this:
    • Numeric types sort in numeric order.
    • String types sort in alphabetical order.
    • Types inappropriate for a row sort that row to the literal bottom, regardless of the specified ordering. (not me getting sent to the bottom of the list πŸ’€)

if no sort columns are specified, or if two lines of output would sort equally across all specified columns, then datasets and bookmarks are 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. iconic default behavior, honestly. ⭐

  • -S property β€” same as -s, but sorts by property in descending order. flip it and reverse it. πŸ”„
  • -t type β€” a comma-separated list of types to display, where type is one of filesystem, snapshot, volume, bookmark, or all. for example, specifying -t snapshot displays only snapshots. fs, snap, or vol can be used as aliases for filesystem, snapshot, or volume. πŸ“

✨ EXAMPLES ✨

🌟 Example 1: Listing ZFS Datasets 🌟

The following command lists all active file systems and volumes in the system. Snapshots are displayed if listsnaps=on. The default is off. See zpoolprops(7) for more information on pool properties.

# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
pool                      450K   457G    18K  /pool
pool/home                 315K   457G    21K  /export/home
pool/home/anne             18K   457G    18K  /export/home/anne
pool/home/bob             276K   457G   276K  /export/home/bob

look at that alignment. we love a clean table. πŸ‘‘

🌟 Example 2: Listing ZFS filesystems and snapshots in JSON format 🌟

# zfs list -j -t filesystem,snapshot | jq
{
  "output_version": {
    "command": "zfs list",
    "vers_major": 0,
    "vers_minor": 1
  },
  "datasets": {
    "pool": {
      "name": "pool",
      "type": "FILESYSTEM",
      "pool": "pool",
      "properties": {
        "used": {
          "value": "290K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "available": {
          "value": "30.5G",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "referenced": {
          "value": "24K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "mountpoint": {
          "value": "/pool",
          "source": {
            "type": "DEFAULT",
            "data": "-"
          }
        }
      }
    },
    "pool/home": {
      "name": "pool/home",
      "type": "FILESYSTEM",
      "pool": "pool",
      "properties": {
        "used": {
          "value": "48K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "available": {
          "value": "30.5G",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "referenced": {
          "value": "24K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "mountpoint": {
          "value": "/mnt/home",
          "source": {
            "type": "LOCAL",
            "data": "-"
          }
        }
      }
    },
    "pool/home/bob": {
      "name": "pool/home/bob",
      "type": "FILESYSTEM",
      "pool": "pool",
      "properties": {
        "used": {
          "value": "24K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "available": {
          "value": "30.5G",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "referenced": {
          "value": "24K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "mountpoint": {
          "value": "/mnt/home/bob",
          "source": {
            "type": "INHERITED",
            "data": "pool/home"
          }
        }
      }
    },
    "pool/home/bob@v1": {
      "name": "pool/home/bob@v1",
      "type": "SNAPSHOT",
      "pool": "pool",
      "dataset": "pool/home/bob",
      "snapshot_name": "v1",
      "properties": {
        "used": {
          "value": "0B",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "available": {
          "value": "-",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "referenced": {
          "value": "24K",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        },
        "mountpoint": {
          "value": "-",
          "source": {
            "type": "NONE",
            "data": "-"
          }
        }
      }
    }
  }
}

piped straight into jq?? we are so back. this is the main character energy of structured output. πŸ’œ


πŸ’« SEE ALSO πŸ’«

zfsprops(7), zfs-get(8)


and that's the whole page bestie, you ate. 🫢 this was OpenZFS, dated August 25, 2025, living under the ZFS-LIST(8) glow. go forth and list your datasets, periodt. πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from