---
name: "mfssnapshots"
section: "1"
platform: "linux"
package: "moosefs"
version: "4.59.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/mfssnapshots"
---

# mfssnapshots(1)

MooseFS snapshot tools

## NAME

mfssnapshots - **MooseFS** snapshot tools

## SYNOPSIS

**mfsappendchunks** \[**-?**\] \[**-s** *FROM***:***TO*\] *SNAPSHOT\_FILE* *FILE*...

**mfsmakesnapshot** \[**-?**\] \[**-o**\|**-c**\|**-p**\] *SOURCE\_OBJECT*... *DESTINATION*

**mfsrmsnapshot** \[**-?**\] \[**-f**\] *OBJECT*...

## DESCRIPTION

**mfsappendchunks** (equivalent of **mfssnapshot** from MooseFS 1.5) appends a lazy copy of specified *FILE*(s) to specified *SNAPSHOT\_FILE* ("lazy" means that creation of new chunks is delayed to the moment one copy is modified). IF *SNAPSHOT\_FILE* does not exist, it is created. If multiple files are given, they are merged into one target file in such a way that each file begins at *chunk* (64MB) boundary; padding space is left empty. Optionally only slice of chunks can be appended (option **-s**). Slice definition is similar to Python: *FROM* is included, *TO* excluded, negative numbers mean backwards from the end. If *FROM* or *TO* is not specified then it means from the beginning or to the end of file respectively. See examples below.

**mfsmakesnapshot** makes a "real" snapshot (lazy copy, like in case of **mfsappendchunks**) of some object(s) or subtree (similarly to **cp -r** command). It's atomic with respect to each *SOURCE\_OBJECT* argument separately. If *DESTINATION* points to already existing file, error will be reported unless **-o** (overwrite) option is given. If destination points to an already existing directory, snapshot is created inside this directory. Note: if *SOURCE\_OBJECT* is a directory, it is copied as a whole; but if it's followed by trailing slash, only directory content is copied. When **-c** option is given then attributes of newly created files are more similar to those created by ordinary **cp** (without attribute preserving). Option **-p** preserves hardlinks in *SOURCE* (when two or more objects inside *SOURCE* are hardlinked to each other then in *DESTINATION* folder those objects will be hardlinked to each other as well).

**mfsrmsnapshot** removes objects created as a result of **mfsmakesnapshot** (similarly to **rm -r**, but much faster). For safety reasons objects created via **mfsmakesnapshot** have the **snapshot** attribute set (see [**mfseattr**(1)](/mfseattr/1.md)) and only such objects can be removed using **mfsrmsnapshot** command. By default all files and directories inside specified directory must have this attribute set for the command to remove the whole directory; otherwise the command will not remove anything. This behavior can be overridden by **-f** option. With this option **mfsrmsnapshot** will remove only those files/directories that have **snapshot** attribute set and will leave everything else untouched.

### SLICES

*FROM***:***TO* for source file with chunks 0,1,2,...,N-1,N:

2:4 = chunks 2 and 3

3: = chunks 3,4,...,N

:5 = chunks 0,1,2,3,4

:-1 = chunks 0,1,2,3,...,N-1

\-4:-2 = chunks N-3,N-2

## OPTIONS

Option **-?** displays short usage message.

## REPORTING BUGS

Report bugs to \<bugs@moosefs.com\>.

## COPYRIGHT

Copyright (C) 2026 Jakub Kruszona-Zawadzki, Saglabs SA

This file is part of MooseFS.

MooseFS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 (only).

MooseFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see \<https://www.gnu.org/licenses/\>.

## SEE ALSO

[**mfsmount**(8)](/mfsmount/8.md), [**mfstools**(1)](/mfstools/1.md), [**mfseattr**(1)](/mfseattr/1.md)
