NVME-ZNS-ZONE-APP(1) NVMe Manual NVME-ZNS-ZONE-APP(1)

# [NAME](#NAME)

nvme-zns-zone-append - Send an NVMe write command, provide results

# [SYNOPSIS](#SYNOPSIS)

```
nvme [<global-options>] zns zone-append <device>


                        [--namespace-id=<NUM> | -n <NUM>]


                                [--zslba=<IONUM> | -s <IONUM>]


                                [--data-size=<IONUM> | -z <IONUM>]


                                [--metadata-size=<IONUM> | -y <IONUM>]


                                [--data=<FILE> | -d <FILE>]


                                [--metadata=<FILE> | -M <FILE>]


                                [--limited-retry | -l]


                                [--force-unit-access | -f]


                                [--ref-tag=<NUM> | -r <NUM>]


                                [--app-tag-mask=<NUM> | -m <NUM>]


                                [--app-tag=<NUM> | -a <NUM>]


                                [--prinfo=<NUM> | -p <NUM>]
```

# [DESCRIPTION](#DESCRIPTION)

The zone append command writes the logical blocks specified by the command to the medium from the data data buffer provided. Will use stdin by default if you don’t provide a file.

On success, the program will report the LBA that was assigned to the data for the append operation.

# [OPTIONS](#OPTIONS)

-n &lt;NUM&gt;, --namespace-id=&lt;NUM&gt;

Use the provided namespace id for the command. If not provided, the namespace id of the block device will be used. If the command is issued to a non-block device, the parameter is required.

-s &lt;IONUM&gt;, --zslba=&lt;IONUM&gt;, -z &lt;IONUM&gt;, --data-size=&lt;IONUM&gt;

Size of data, in bytes.

-y &lt;IONUM&gt;, --metadata-size=&lt;IONUM&gt;

Size of metadata in bytes.

-d &lt;FILE&gt;, --data=&lt;FILE&gt;

Data file providing the data to write. If none provided, contents are sent from STDIN.

-M &lt;FILE&gt;, --metadata=&lt;FILE&gt;

Metadata file, if necessary.

-l, --limited-retry

Sets the limited retry flag.

-f, --force-unit-access

Set the force-unit access flag.

-r &lt;NUM&gt;, --ref-tag=&lt;NUM&gt;

Optional reftag when used with protection information.

-m &lt;NUM&gt;, --app-tag-mask=&lt;NUM&gt;

Optional application tag mask when used with protection information.

-a &lt;NUM&gt;, --app-tag=&lt;NUM&gt;

Optional application tag when used with protection information.

-p &lt;NUM&gt;, --prinfo=&lt;NUM&gt;

Protection Information field definition.

# [GLOBAL OPTIONS](#GLOBAL_OPTIONS)

The following options are defined at the top-level nvme command and are available to this subcommand:

--dry-run

Print the command that would be executed, but do not actually execute it.

--no-ioctl-probing

Disable probing for 64-bit IOCTL support.

--no-retries

Disable retry logic on transient errors.

-o &lt;fmt&gt;, --output-format=&lt;fmt&gt;

Set the reporting format to *normal*, *tabular, 'json*, or *binary*. Only one output format may be used at a time.

--output-format-version=&lt;version&gt;

Select the output format version. Version *1* uses the original field naming, while version *2* (default) provides more consistent and script-friendly field names.

--timeout=&lt;ms&gt;

Set the timeout for the command in milliseconds.

-v, --verbose

Increase the level of detail in the output. May be specified multiple times to further increase verbosity.

These options can also be set as machine-wide defaults in [nvme-cli.conf(5)](/man/os/nvme-cli/nvme-cli.conf.5). A command-line flag always overrides the file.

# [EXAMPLES](#EXAMPLES)

•Append the data "hello world" into 4k worth of blocks into the zone starting at block 0 for namespace 1:

```
# echo "hello world" | nvme zns zone-append /dev/nvme0 -n 1 -s 0 -z 4k
```

# [NVME](#NVME)

Part of the nvme-user suite

09/18/2026 NVMe

---

Document: nvme-zns-zone-append(1) from nvme-cli 3.1-r1 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
