		--- digup - A Digest Updating Tool ---

Description

digup is a tool to update md5sum or shasum digest files. It will read
existing digest files, check the current directory for new, updated,
modified, renamed or deleted files and query the user with a summary
of changes. After reviewing the updates, they can be written back to
the digest file.

One of the envisioned applications of digup is to update and verify
incremental archives like chronological data storages or music
collections. By using digup possibly undesired changes or lost files
can easily be detected while quickly adding new files.

Another purpose could be to automatically verify the integrity of hard
disk copies of archives, as backups to hard disks are becoming
increasingly popular. Using a full file digest scan even slowly
creeping bad blocks on old hard disks can be detected. By using a
crontab entry, this check can be performed unattended and routinely.

In normal operation only touched files with newer modification times
are fully read and their digest compared. Optionally a full scan can
be performed to test all file contents against their expected digests.

Symbolic links are supported by either following the link and reading
the target's digest or by saving only the link target path and
verifying it against the old one.

The digest files written by digup are compatible with those generated
and read by md5sum and similar programs from the coreutils
package. Additional information like file size and modification time
or symlink targets are stored on comment lines.

Four digest algorithms are supported: MD5, SHA1, SHA256 and
SHA512. The digest file itself is also checksummed using CRC32 against
unintentional changes. A fast red-black binary tree is used for the
internal file list, allowing fast operation on a large number of
files.

Website

https://panthema.net/2009/digup/
