FreeBSD Manual Pages
MBAR(1) General Commands Manual MBAR(1) NAME mbar - mailbox archiver SYNOPSIS mbar [-DVciknstvx?] [-a DATE] [-b DATE] [-f FILE] [-I DIR] [-L DIR] [-m NUM] [-p PAT] [-r MODULE] [-x PAT] [--after-date=DATE] [--before-date=DATE] [--clear-include-path] [--clear-library-path] [--clearpath] [--compile-only] [--config-file=FILE] [--config-help] [--config-lint] [--config-verbose] [--debug-level=LEVEL] [--debug-line-info] [--dry-run] [--dump] [--environment=NAME=VALUE] [--exclude=PAT] [--help] [--includedir=DIR] [--instructions] [--keep] [--libdir=DIR] [--libdir-prefix=DIR] [--locus] [--log-facility=FACILITY] [--mailbox-type=TYPE] [--maxdepth=NUM] [--no-config] [--no-site-config] [--no-user-config] [--pattern=PAT] [--pattern-type=glob|imap|regex] [--require=MODULE] [--set=PARAM=VALUE] [--show-config-options] [--statistics] [--template-file=FILE] [--trace] [--usage] [--variable=NAME=VALUE] [--verbose] [--version] DIR DEST [EXPR] DESCRIPTION Scans directory DIR for mailboxes matching pattern (by default - *, i.e. all mailboxes). For each mailbox, messages matching the supplied criteria are picked and moved to the mailbox of the same name, located under the directory DEST. If the destination mailbox doesn't exist, it will be created with the necessary intermediate directories, so that directory hierarchy under DEST is identical to that under DIR. When no selection criteria are supplied, mbar moves all messages in each mailbox. The -b (--before-date) option instructs mbar to archive only messages received before the date indicated by its argument. The option -a (--after-date) is similar, except that it selects messages received af- ter the given date. The two options can be used together to define a time range. A wide variety of date formats are understood. For a detailed discus- sion of them, see http://mailutils.org/manual/html_section/Date-Input- Formats.html. For example, the following example will archive messages received more than one year ago: mbar -b '1 year ago' /var/mail /var/backups/mail More complex criteria can be provided using the EXPR optional argument. The value of this argument must be a valid Sieve conditional, suitable for use in the if statement. For example, the -b DATE option described above is a shortcut for spec- ifying the following as EXPR: timestamp :before "Date" "DATE" The utility works by creating a Sieve script using the supplied crite- rion as a condition and by executing this script on each mailbox en- countered. The script is built by preprocessing a template text. During prepro- cessing, references to macro variables in form $VAR or ${VAR} are ex- panded to the actual value of the corresponding macro variable. Apart from these basic forms, all forms supported by POSIX shell are also allowed, e.g. ${VAR:-default}, ${VAR##prefix}, etc. The following macro variables are defined: cond Expands to the condition expression requires Expands to a comma-separated list of additional requires needed for successful compilation of the Sieve script. Such additional requires are supplied via the -r (--require) command line op- tion. Notice, that unless the list is empty, the expansion of requires starts with a comma. keep Expands to 1 if the -k (--keep) option is given and to empty string otherwise. The template can refer also to Sieve variables (RFC 5229). Such refer- ences must be preceded with backslashes to prevent them from being ex- panded as macro variables. The following Sieve variables are always defined: source Pathname of the source mailbox, relative to DIR. dest Pathname of the destination mailbox, relative to DEST. The user can define any number of Sieve variables using the --vari- able=NAME=VALUE command line option. The default template script is: require ["fileinto"${requires}]; if ${cond} { fileinto "\${dest}";${keep:+keep;} } OPTIONS -a, --after-date=DATE Archive messages received after DATE. -b, --before-date=DATE Archive messages received before DATE. -c, --compile-only Compile Sieve script and exit. Use this to check the script syntax, if you supply EXPR explicitly and/or provide your own template file. Using this option together with -v shows additionally output of the template preprocessing phase. -D, --dump Compile script, dump disassembled sieve code to terminal and ex- it. --environment=NAME=VALUE Set sieve environment value (RFC 5183). -f, --template-file=FILE Read template from FILE, instead of using built-in template. -i, --instructions Show sieve instruction trace. -k, --keep Don't remove messages after archiving. --locus Show action locations with verbose output. -m, --maxdepth=NUM Limit directory scanning to the nesting depth NUM. --mailbox-type=TYPE Set type of destination mailboxes. -n, --dry-run Don't do anything: print what would have been done. -p, --pattern=PAT Archive mailboxes matching pattern PAT. The pattern is matched against mailbox name relative to DIR. Unless indicated other- wise (see --pattern-type below), PAT is treated as in glob(7). If this option is used multiple times, mailboxes that match any of the supplied patterns will be archived. If PAT starts with the character @, remaining characters are treated as the name of the file from which to read patterns. The file should list each pattern on a separate line. Addition- al leading and trailing whitespace is allowed. Empty lines are ignored. A line starting with # is a comment and is ignored as well. To start pattern with a sharp, precede it with a back- slash. This is the only case where backslash has a special meaning, otherwise it is treated as a regular character. -T, --pattern-type=TYPE Set type of the pattern used with -e and -p options. Valid val- ues for TYPE are: glob Globbing pattern (glob(7)). This is the default. imap IMAP pattern. Two wildcards are allowed: *, that matches zero or more characters, and %, that is similar to *, but doesn't match hierarchy delimiter (/). regex POSIX extended regular expression. -r, --require=MODULE Require MODULE in the produced Sieve script. Notice that vari- ables are always required, and fileinto is required by the built-in template. Technically, this option appends ,MODULE to the value of require meta-variable (see above). -s, --statistics Collect additional statistics about messages processed and dis- play it at the end of the run. The statistics includes number of messages and size of the data archived and processed. This option implies first level of verbosity (i.e. -v). Example out- put: scanned 9 mailboxes in 16 folders messages: 1879/13085 size: 6505/4670425 -t, --trace Enable sieve trace. --variable=NAME=VALUE Define Sieve variable NAME (RFC 5229). -v, --verbose Verbosely print what is being done. This option is incremental. In normal mode (i.e. without -c option), the effect is as fol- lows: -v Print a one-line description of each mailbox being archived. -vv Print a one-line description of each mailbox (whether archived or not) and each directory descended into. The description consists of three columns, separated by single horizontal spaces. Column one consists of three characters, in this order: d for directories, m for mail- boxes, and + for archived mailboxes. A - is placed in- stead of each letter that doesn't apply. Column two is the nesting level, and column three is the pathname. These two are computed relative to DIR. An example of this output: d-- 0 mail d-- 1 mail/others dm- 2 mail/others/drafts dm+ 1 mail/inbox -vvv Additionally output the preprocessed Sieve script list- ing. -vvvv Additionally enables Sieve action tracing. This can be enabled separately, using the -t option, which see. When used together with -c (--compile-only), one -v option out- puts the preprocessed Sieve script template with line numbers. Two -v options output additionally the disassembled script. -x, --exclude=PAT Exclude from archiving mailboxes that match the pattern PAT. See the description of -p (--pattern) above, for a discussion of PAT and its possible forms. Multiple options are allowed. If both --pattern and --exclude are used, the latter has prece- dence over the former, i.e. a mailbox will be archived only if it matches at least one of --pattern options and does not match any --exclude option. STANDARD MAILUTILS OPTIONS Global debugging settings --debug-level=LEVEL Set Mailutils debugging level. This is especially useful with the following sieve levels: trace1 Print parse tree before optimization. trace2 Print parse tree after optimization. trace3 Print parser traces. trace4 Print tests and actions being executed. This is the same as --trace. trace9 Print each Sieve instruction being executed. Remember, that by default each trace level includes all levels preceding it. To get the output of that level only, prefix it with an equals sign. For example, to get a step-by-step trace, use: --debug-level=sieve.=trace9 --debug-line-info Show source info with debugging messages. --log-facility=FACILITY Output logs to this syslog facility. Sieve options --clear-include-path Clear Sieve include path. --clear-library-path, --clearpath Clear Sieve library path. -I, --includedir=DIR Append DIR to the list of directories searched for include files. -L, --libdir=DIR Append DIR to the list of directories searched for library files. --libdir-prefix=DIR Add DIR to the beginning of the list of directories searched for library files. Configuration handling --config-file=FILE Load this configuration file; implies --no-config. --config-lint Check configuration file syntax and exit. --config-verbose Verbosely log parsing of the configuration files. --no-config Don't load site and user configuration files. --no-site-config Don't load site-wide configuration file. --no-user-config Don't load user-specific configuration file. --set=PARAM=VALUE Set configuration parameter. Informational options --config-help Show configuration file summary. --show-config-options Show compilation options. -?, --help Give a short command line help summary. --usage Output a short usage message. -V, --version Print program version. EXIT CODES The exit codes conform with /usr/include/sysexits.h: 0 Success. 64 (EX_USAGE) Command line usage error. 69 (EX_UNAVAILABLE) Unable to create mailbox or intermediate directories. 70 (EX_SOFTWARE) Internal software error. Please report if you ever encounter this exit code. 71 (EX_OSERR) System error (can't change effective UID, allocate memory, etc.) 78 (EX_CONFIG) Error in Sieve script template. SEE ALSO http://mailutils.org/manual/html_chapter/Sieve-Language.html. glob(7), regex(7). AUTHORS Sergey Poznyakoff BUG REPORTS Report bugs to <gray@gnu.org>. COPYRIGHT Copyright (C) 2016, 2019, 2025 Sergey Poznyakoff License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licens- es/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. MBAR October 17, 2025 MBAR(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | STANDARD MAILUTILS OPTIONS | EXIT CODES | SEE ALSO | AUTHORS | BUG REPORTS | COPYRIGHT
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mbar&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>
