metamonger(3) Save, diff, and restore filesystem metadata


metamonger [--config|--debug|-v|--verbose]

metamonger {diff | restore | save | status} [-L|--derefence|-P|--no-dereference] [-n|--no-act] [--untracked=[no|normal|all]] [<path>]

metamonger {help | version}


metamonger allows you to store file metadata as returned by stat(1) in a text file.

By default, it saves only mtime on files. Other attributes an

Storage format

The storage format is plain JSON, but reformatted so that every entry and all its data is on one line. This allows for easy integration with git(1), svn(1), and other VCS. It also allows for editing by hand should you so please.


metamonger stands for monging metadata. ``meta'' as in metadata; ``monging'' as in dealing with or selling something (fishmonger) and pushing for something unpleasant (warmonger).


Specify custom config file.
Print debug messages.
Always follow symlinks. This is the default.
Never follow symlinks.
Do not act; print results only.
Show untracked files: None, default, or all.
Print verbose messages.


diff [path]
Diff between stored and live metadata.
Display this help.
restore [path]
Restore metadata to file system.
save [path]
Write metadata to file.
status [path]
Show status
Display version information.


metamonger can set metadata on files. This means it is able to add/remove write permissions. It can also change the modification times of files, potentially making make(1) ignore them in a rebuild. Don't act stupidly, as metamonger will happily allow you to shoot yourself in the foot; same as rm(1).


None are known at this time, but reports and/or patches are more than welcome.


This POD/manpage and metamonger itself were written by Richard ``RichiH'' Hartmann.

Errietta ``erry'' Kostala made significant contributions and implemented the test suite from scratch.


Copyright 2012-2013 Richard Hartmann <[email protected]>.

Licensed under the GNU GPL version 2 or higher.