As of version 2.99.97, mu dbm supports two formats for dumping DBM databases. Both formats are line-oriented. Comments are introduced with a sharp (‘#’) sign in the column 0 of a line, followed by at least one white space character (space or tab). Sharp sign followed by a colon (‘#:’) introduces a paragmatic comment, which carries some additional information to the loader.
The version 0.0 format is suitable for databases whose records contain only ASCII data. In this format, each record occupies a separate line, which consists of the key and value separated by a single tab character. Empty lines are ignored. For example:
$ mu list /etc/mail/users.db root guessme smith pAssword qed fooBar
The output in version 0.0 format is human readable and can be used as input to the popauth utility (see popauth (Editor's note: dangling link). However, version 0.0 has serious drawbacks. First of all, it is not suitable for databases that contain binary data. Secondly, it cannot properly handle keys beginning with a sharp sign or containing tab. The version 1.0 format is free from these drawbacks.
The version 1.0 dump format begins with a header containing important information about the file, such as its file name, ownership and file mode. This information is stored in pragmatic comments and allows mu dbm load to easily recreate an exact copy of the file. The following comments are defined:
Following this header are actual data. Each record is output in two parts: key and value. Each part begins with a ‘#:len=n’ construct on a line by itself, where n is the length of the data in decimal. This line is followed by one or more lines of the actual data, encoded in base64. The data are formatted so that each line does not exceed 76 bytes in length (not counting the terminating newline). An example of this format follows:
# Database dump file created by GNU Mailutils 2.99.93 on # Tue Nov 1 13:28:03 2011 #:version=1.0 #:file=users.db #:uid=0,user=root,gid=25,group=mail,mode=640 #:len=6 c21pdGgA #:len=9 cEFzc3dvcmQA #:len=5 cm9vdAA= #:len=8 Z3Vlc3NtZQA= #:len=4 cWVkAA== #:len=7 Zm9vQmFyAA==