The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.


checkm - create a checkm manifest


checkm [opts] over [name ...]


The checkm command takes one subcommand (currently), over, that writes a Checkm file manifest to the standard output computed over all files and directories (recursively) given as arguments, or the current directory by default. On platforms that support them, symbolic links are followed unless -P is used to prevent it.

Up to five Checkm fields are produced (all five of these by default):

    filename | algorithm | digest | size | modtime

(If symbolic links are being followed, stat(1) is already done for each file, so size and modtime come at no extra cost.) Use -c to select only desired fields, designated by first letter. The default field set corresponds to -c fadsm and -c - asks checkm to compute no per-file digests, the most useful output then being the final octet/file count summary (oxum). Options examples:

 -a <algorithm>  use given digest algorithm (SHA-256 default, or MD5)
 -a list         list digest algorithms installed on your platform
 -c fad          produce only the first 3 fields
 -c fs           produce only fields 1 and 4
 -v              be verbose with errors
 -h              print this help text

An algorithm can be specified with the --algorithm (-a) option. Currently MD5 is used by default, unless SHA-256 is found to be installed. An algorithm given as "-" causes the weaker alternative to be selected.

Once processing has begun, errors are printed as comments in the produced manifest. Use --verbose to see them also on standard error.

During processing, various comment lines are written. A comment line of the form #%checkm_stats|oxum+dinks contains a summary of the octets and files (oxum) processed and the directories, links, and special files seen (dinks). The last line is a check-point line that contains a digest of the file contents from the beginning of the file (or from the beginning of the previous check-point line) up to and including the line end of the immediately preceding line. A simple way to detect if two manifest differ is to compare their respective check-point digests.

This beta-level software has not been extensively tested.


   $ checkm over myobjs/       # recurse through all files under myobjs/
   $ checkm -a SHA-384 over    # use SHA-384 algorithm over files in "."


-a, --algorithm name

Use the named digest algorithm. If name is list, produce a list of algorithms currently installed on your platform (it may be easy to install others). If name is "-", use the command's best guess as to the most widely available (not usually strongest, however) algorithm. If name is sequence of comma-separated algorithms, use the first available.

-h, --help

Print help documentation.


Print full documentation.

-v, --verbose

Print errors on the standard error output as well as in manifest comment lines.


Print the current version number and exit.


md5(1), sha1sum(1)


John Kunze jak at ucop dot edu


Copyright 2010 UC Regents. Open source BSD license.