btrfs-send(8) send data of subvolume(s) to stdout/file.


btrfs send [-ve] [-p <parent>] [-c <clone-src>] [-f <outfile>] <subvol> [<subvol>...]


Sends the subvolume(s) specified by <subvol> to stdout. <subvol> should be read-only here.

By default, this will send the whole subvolume. To do an incremental send, use -p <parent>.

If you want to allow btrfs to clone from any additional local snapshots, use -c <clone-src> (multiple times where applicable).

You must not specify clone sources unless you guarantee that these snapshots are exactly in the same state on both sides, the sender and the receiver.

It is allowed to omit the -p <parent> option when -c <clone-src> options are given, in which case btrfs send will determine a suitable parent among the clone sources itself.



Enable verbose debug output. Each occurrence of this option increases the verbose level more.


If sending multiple subvols at once, use the new format and omit the <end cmd> between the subvols.

-p <parent>

Send an incremental stream from <parent> to <subvol>.

-c <clone-src>

Use this snapshot as a clone source for an incremental send (multiple allowed).

-f <outfile>

Output is normally written to stdout. To write to a file, use this option. An alternative would be to use pipes.


Send in NO_FILE_DATA mode. The output stream does not contain any file data and thus cannot be used to transfer changes. This mode is faster and useful to show the differences in metadata.


btrfs send returns a zero exit status if it succeeds. Non zero is returned in case of failure.


btrfs is part of btrfs-progs. Please refer to the btrfs wiki m[blue][] for further details.