Generates a checksum for a given folder without considering updated_at/created_at/permissions, just the content.
def self.checksum(dir) files = Dir["#{dir}/**/*"].reject{|f| File.directory?(f)} content = files.map{|f| File.read(f)}.join require 'md5' MD5.md5(content).to_s end
Simpler but with modification/user-rights etc:
Unix
tar cf - /dir | md5sum
Mac
tar cf - /dir | md5
I’d do this:
md5sum folder/* | md5sum
but it is not recursive, only sums the files at the ‘folder/’ level,
`md5sum folder/**/* | md5sum` + `md5sum folder/* | md5sum` would do this trick somewhat