bup-meta(1)
π bup-meta π
okay bestie, welcome to bup-meta from the General Commands Manual section β she's the metadata archivist of the bup(1) fam and she is so underrated. let's get into it β¨
πΈ NAME πΈ
bup-meta β create or extract a metadata archive. that's it, that's the job, and she eats every time π
π SYNOPSIS π
bup meta --create
[-R] [-v] [-q] [--no-symlinks] [--no-paths] [-f file] <paths...>
bup meta --list
[-v] [-q] [-f file]
bup meta --extract
[-v] [-q] [--numeric-ids] [--no-symlinks] [-f file]
bup meta --start-extract
[-v] [-q] [--numeric-ids] [--no-symlinks] [-f file]
bup meta --finish-extract
[-v] [-q] [--numeric-ids] [-f file]
bup meta --edit
[--set-uid uid | --set-gid gid | --set-user user | --set-group
group | ...] <paths...>
look at her. six whole modes. main character energy fr fr π
β¨ DESCRIPTION β¨
so like, bup meta creates, extracts, or otherwise manipulates metadata archives. and a metadata archive? it's literally just the metadata info β timestamps, ownership, access permissions, etc. β for a set of filesystem paths. no file contents, just the β¨vibesβ¨ of the files. periodt.
ngl if you wanna know how ownership metadata gets put back where it belongs, go read bup-restore(1) β that's the whole description of it, bestie, I'm not gonna make stuff up π«Ά
π OPTIONS π
-c,--createβ make a metadata archive for the paths you named. writes it to standard output unless you pass--file. π-t,--listβ show you what metadata is inside an archive. reads from standard input unless you pass--file. π-x,--extractβ extract a metadata archive. conceptually it's--start-extractand then--finish-extract, one after the other. reads from standard input unless--fileis specified. π--start-extractβ build a filesystem tree that matches the paths stored in the metadata archive. heads up: on its own this does not give you a full metadata restoration β for that you gotta follow it up with a--finish-extractcall. once this command finishes, all the normal files described by the metadata will exist and be empty. then you restore the data in those files, then call--finish-extract, and boom, original tree is back. archive gets read from standard input unless--fileis specified. π±--finish-extractβ finish applying the metadata from an archive onto the filesystem. normally this comes right after a--start-extractcall. archive reads from standard input unless--fileis specified. π¦--editβ edit metadata archives. result goes to standard output unless--fileis specified. βοΈ-f,--file=filenameβ read the metadata archive from filename, or write it to filename, whichever is the appropriate direction. and if filename is-, then it reads from standard input or writes to standard output. π-R,--recurseβ recursively descend into subdirectories during--create. π--xdev,--one-file-systemβ don't cross filesystem boundaries β though, same as withtarandrsync, the mount points themselves will still be handled. π§--numeric-idsβ apply numeric IDs (user, group, etc.) rather than names during--extractor--finish-extract. π’--symlinksβ record symbolic link targets when creating an archive, or restore symbolic links when extracting one (during--extractor--start-extract). this one is enabled by default. specify--no-symlinksto turn it off. π--pathsβ record pathnames when creating an archive. also enabled by default. specify--no-pathsto turn it off. π--set-uid=uidβ set the metadata uid to the integer uid during--edit. π€--set-gid=gidβ set the metadata gid to the integer gid during--edit. π₯--set-user=userβ set the metadata user to user during--edit. π«--unset-userβ remove the metadata user during--edit. π--set-group=groupβ set the metadata user to group during--edit. (yes bestie, the original says "user", I'm just the messenger π) π--unset-groupβ remove the metadata group during--edit. π§Ή-v,--verboseβ be more verbose (can be used more than once). π£οΈ-q,--quietβ be quiet. π€«
π₯ EXAMPLES π₯
# Create a metadata archive for /etc.
$ bup meta -cRf etc.meta /etc
bup: removing leading "/" from "/etc"
# Extract the etc.meta archive (files will be empty).
$ mkdir tmp && cd tmp
$ bup meta -xf ../etc.meta
$ ls
etc
# Restore /etc completely.
$ mkdir tmp && cd tmp
$ bup meta --start-extract -f ../etc.meta
...fill in all regular file contents using some other tool...
$ bup meta --finish-extract -f ../etc.meta
# Change user/uid to root.
$ bup meta --edit --set-uid 0 --set-user root \
src.meta > dest.meta
go off, honestly. the last one is giving glow-up makeover for your metadata π β¨
π BUGS π
hard links are not handled yet. we're waiting, bestie π
π BUP π
part of the bup(1) suite. iconic family, no notes. π«Ά
π AUTHORS π
Rob Browning rlb@defaultvalue.org π
okay that's the whole page, bestie β and just so you know exactly which era of slay this is: it's from Bup 0.34, dated 2026-09-01, <rainbow>bup-meta(1)</rainbow> and all. now go archive something responsibly πβ¨π
π¦ where this page comes from
- fedora 44: bup 0.34-1.fc44 Β· LGPL-2.0-only
- nixpkgs unstable: bup 0.34
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms