Backing up and verifying files in Mac OS

There are some interesting backup tools for system backups (Time Machine) but I want to just be able to copy and verify a directory (and its children).  I’ve heard that the commercial product Retrospect provides copy and verify functionality, but I’m cheap.

This is the method that I used.  I’d be interested on hearing feedback about it:

# Copy the files using ditto 
$ ditto /Volumes/Backup/columbus_da/ /Volumes/ghingexternal/columbus_da

# Get md5s for the original and copied files
$ find /Volumes/ghingexternal/columbus_day/ -exec md5 '{}' \; > md5s-new.txt
$ find /Volumes/Backup/columbus_day/ -exec md5 '{}' \; > md5s-old.txt

# Strip out the directory prefix from the md5 files
$ mv md5s-old.txt md5s-old.txt.bak
$ mv md5s-new.txt md5s-new.txt.bak
$ sed 's/\/Volumes\/ghingexternal\///' md5s-new.txt.bak > md5s-new.txt
$ sed 's/\/Volumes\/Backup\///' md5s-old.txt.bak > md5s-old.txt

# Compare the md5s of the copied files
$ diff md5s-old.txt md5s-new.txt

HFS filesystem woes

So I had this external firewire drive that I use both on my Linux box and my OS X box.  When I try to mount it under linux, I get an error saying “HFS-fs warning: Filesystem was not cleanly unmounted, running fsck.hfs is recommended.  mounting read-only”.  However, the drive works fine under OS X, and running fsck on my OS X box reports no problems.  I even tried running the linux port of the OS X fsck for HFS (afaik there is no native Linux version of the utility) as described at  This reports no problems either, but it still doesn’t set that unclean flag back.  The only solution I can think of at this point is to modify the hfs kernel module to not do that chek so it will mount the drive read-write, set the bit back, and let me cleanly unmount the drive.  Then I can replace my modded module with the original, safety-conscious one.  This seems like a bad way to do it, but I couldn’t find a better alternative.