Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZFS-DESTROY(8)		    System Manager's Manual		ZFS-DESTROY(8)

NAME
       zfs-destroy -- destroy ZFS dataset, snapshots, or bookmark

SYNOPSIS
       zfs destroy [-Rfnprv] filesystem|volume
       zfs destroy [-Rdnprv] filesystem|volume@snap[%snap[,snap[%snap]]]
       zfs destroy filesystem|volume#bookmark

DESCRIPTION
       zfs destroy [-Rfnprv] filesystem|volume
	 Destroys  the	given  dataset.	  By default, the command unshares any
	 file systems that are currently shared,  unmounts  any	 file  systems
	 that are currently mounted, and refuses to destroy a dataset that has
	 active	dependents (children or	clones).

	 -R  Recursively destroy all dependents, including cloned file systems
	     outside the target	hierarchy.

	 -f  Forcibly unmount file systems.  This option has no	effect on non-
	     file systems or unmounted file systems.

	 -n  Do	 a dry-run ("No-op") deletion.	No data	will be	deleted.  This
	     is	useful in conjunction with the -v or  -p  flags	 to  determine
	     what data would be	deleted.

	 -p  Print  machine-parsable  verbose  information  about  the deleted
	     data.

	 -r  Recursively destroy all children.

	 -v  Print verbose information about the deleted data.

	 Extreme care should be	taken when applying either the -r  or  the  -R
	 options, as they can destroy large portions of	a pool and cause unex-
	 pected	behavior for mounted file systems in use.

       zfs destroy [-Rdnprv] filesystem|volume@snap[%snap[,snap[%snap]]]
	 Attempts  to  destroy	the  given snapshot(s).	 This will fail	if any
	 clones	of the snapshot	exist or if the	snapshot  is  held.   In  this
	 case,	by default, zfs	destroy	will have no effect and	exit in	error.
	 If the	-d option is applied, the command will instead mark the	 given
	 snapshot  for	automatic  destruction as soon as it becomes eligible.
	 While marked for destruction, a snapshot  remains  visible,  and  the
	 user may create new clones from it and	place new holds	on it.

	 The read-only snapshot	properties defer_destroy and userrefs are used
	 by zfs	destroy	to determine eligibility and marked status.

	 An  inclusive	range  of snapshots may	be specified by	separating the
	 first and last	snapshots with a percent sign.	The first and/or  last
	 snapshots may be left blank, in which case the	filesystem's oldest or
	 newest	snapshot will be implied.

	 Multiple snapshots (or	ranges of snapshots) of	the same filesystem or
	 volume	may be specified in a comma-separated list of snapshots.  Only
	 the  snapshot's short name (the part after the	@) should be specified
	 when using a range or comma-separated list to identify	multiple snap-
	 shots.

	 -R  Recursively destroy all clones of these snapshots,	including  the
	     clones,  snapshots, and children.	If this	flag is	specified, the
	     -d	flag will have no effect.

	 -d  Rather than returning error if the	given snapshot	is  ineligible
	     for  immediate  destruction,  mark	it for deferred, automatic de-
	     struction once it becomes eligible.

	 -n  Do	a dry-run ("No-op") deletion.  No data will be deleted.	  This
	     is	 useful	 in  conjunction  with the -p or -v flags to determine
	     what data would be	deleted.

	 -p  Print machine-parsable  verbose  information  about  the  deleted
	     data.

	 -r  Destroy  (or  mark	for deferred deletion) all snapshots with this
	     name in descendent	file systems.

	 -v  Print verbose information about the deleted data.

	 Extreme care should be	taken when applying either the -r  or  the  -R
	 options, as they can destroy large portions of	a pool and cause unex-
	 pected	behavior for mounted file systems in use.

       zfs destroy filesystem|volume#bookmark
	 The given bookmark is destroyed.

EXAMPLES
   Example 1: Creating and Destroying Multiple Snapshots
       The  following  command	creates	snapshots named	yesterday of pool/home
       and all of its descendent file systems.	Each snapshot  is  mounted  on
       demand  in  the .zfs/snapshot directory at the root of its file system.
       The second command destroys the newly created snapshots.
	     # zfs snapshot -r pool/home@yesterday
	     # zfs destroy -r pool/home@yesterday

   Example 2: Promoting	a ZFS Clone
       The following commands illustrate how to	test out  changes  to  a  file
       system, and then	replace	the original file system with the changed one,
       using clones, clone promotion, and renaming:
	     # zfs create pool/project/production
	       populate	/pool/project/production with data
	     # zfs snapshot pool/project/production@today
	     # zfs clone pool/project/production@today pool/project/beta
	       make changes to /pool/project/beta and test them
	     # zfs promote pool/project/beta
	     # zfs rename pool/project/production pool/project/legacy
	     # zfs rename pool/project/beta pool/project/production
	       once the	legacy version is no longer needed, it can be destroyed
	     # zfs destroy pool/project/legacy

   Example 3: Performing a Rolling Snapshot
       The following example shows how to maintain a history of	snapshots with
       a  consistent  naming scheme.  To keep a	week's worth of	snapshots, the
       user destroys the oldest	snapshot, renames the remaining	snapshots, and
       then creates a new snapshot, as follows:
	     # zfs destroy -r pool/users@7daysago
	     # zfs rename -r pool/users@6daysago @7daysago
	     # zfs rename -r pool/users@5daysago @6daysago
	     # zfs rename -r pool/users@4daysago @5daysago
	     # zfs rename -r pool/users@3daysago @4daysago
	     # zfs rename -r pool/users@2daysago @3daysago
	     # zfs rename -r pool/users@yesterday @2daysago
	     # zfs rename -r pool/users@today @yesterday
	     # zfs snapshot -r pool/users@today

SEE ALSO
       zfs-create(8), zfs-hold(8), zfsprops(8)

FreeBSD	Ports 14.quarterly	March 16, 2022			ZFS-DESTROY(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zfs-destroy&sektion=8&manpath=FreeBSD+Ports+14.3.quarterly>

home | help