panthema / 2009 / digup
Picture of a shovel and digest matching

digup - A Digest Updating Tool

No posts yet.

Posted on 2009-11-10, last updated 2011-01-30 by Timo Bingmann at Permlink.


digup is a console 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.


digup is targeted at simple digest updating and verification without filtering capabilities or configuration files. For more complex applications like host-based intrusion detection, refer to tools like Tripwire (commercial), AIDE (open-source) or debsums for Debian/Linux.


digup 0.6.40 (current) released 2011-01-30
Windows 2000/NT/XP/Vista/7 Download

Windows 95/98/Me/2000/NT/XP/Vista/7 Stand-alone 32-bit Binary (50.8 KiB)

Debian stable Ubuntu openSUSE Fedora Gentoo
Binaries packages for the Linux distributions above are available in the idlebox Repository. Refer to the individual installation instructions of your distribution (click the icon). If your Linux distribution is not listed, it may be based on one of the above. Otherwise fall back to compiling the source tarball below.
Alternatively to the dynamically linked binaries above, a statically linked, stand-alone Linux binary is also available: digup-0.6.40-static.tar.gz digup-0.6.40-static.tar.gz (303 KiB)
Currently no pre-compiled binaries are available for further systems. However, the source code below was successfully compiled on FreeBSD, OpenBSD and MacOSX.
Source code:

Download digup-0.6.40.tar.bz2 digup-0.6.40.tar.bz2 (127 KiB) or browse the source code.

The source code is released under the GNU General Public License v2 (GPL). Some parts of the source tarball are copyrighted by different authors.

All sources and packages are available in the git repository via git clone

See bottom of this page for older downloads.


Please refer to the manpage of digup(1): also available online in HTML and PDF formats.


Screenshot of two digup runs on Linux


2011-01-30 19:05 - Timo Bingmann - 0.6.40 2011-01-13 17:11 - Timo Bingmann - 0.6.40 2011-01-13 17:04 - Timo Bingmann - 0.6.40 2011-01-13 17:01 - Timo Bingmann - 0.6.40 2010-11-29 18:05 - Timo Bingmann - 0.6.40 2010-10-03 11:28 - Timo Bingmann - 0.6.30 2010-08-20 10:49 - Timo Bingmann - 0.6.27 2010-03-20 14:27 - Timo Bingmann - 0.6.27 2009-11-10 14:57 - Timo Bingmann - 0.6.23

Older Downloads

digup 0.6.30 released 2010-10-03
Source code: digup-0.6.30.tar.bz2 digup-0.6.30.tar.bz2 (125 KiB)

digup 0.6.27 released 2010-08-20
Source code: digup-0.6.27.tar.bz2 digup-0.6.27.tar.bz2 (125 KiB)

digup 0.6.23 released 2009-11-10
Source code: digup-0.6.23.tar.bz2 digup-0.6.23.tar.bz2 (123 KiB)
RSS 2.0 Weblog Feed Atom 1.0 Weblog Feed Valid XHTML 1.1 Valid CSS (2.1)
Copyright 2005-2019 Timo Bingmann - Impressum