derp – directory–examining recursive compare

derp [ –qcutDL ] [ –p perms ] myfile oldfile yourfile

Derp recursively compares the two directories myfile and yourfile using a third common backup directory oldfile as reference. The changes found are printed to standard output, one per line, with the file status describing either sides actions followed by tabulator and the relative file path which might be empty in case when the changed files refers to the ones given at program arguments.

The possible status codes:
an    File added in myfile
na    File added in yourfile
aa!   Both sides added different files with the same name
mn    File was modified in myfile
nm    File was modified in yourfile
mm!   File was changed differently in myfile and yourfile
dn    File was deleted in myfile
nd    File was deleted in yourfile
md!   File was modified in myfile but deleted in yourfile
dm!   File was modified in yourfile but deleted in myfile

Errors are printed to standard error unless –q option is specified. The program is terminated when errors are encountered unless the –c option is given. This can be useful if files are not accessible due to file permission or media corruption.

The –u option will consider changes of file owner and group. When omitted, file ownership is ignored.

The –p option sets the octal mask perms of bits to check in the file permissions. The default ignores file permissions.

When modification times are comparable then the –t option can be used to quickly find changes. If specified, files are considered unchanged if the name, file size and the modification time matches. This is useful when comparing /n/dump archives on the same fileserver.

Files are considered the same if they are from the same mount and their qid (see stat(5)) matches. For directories, the access time is also compared. If the access time was disabled on the fileserver, then all directories need to be compared using the –D option.

Some filesystems like hgfs(4) do not always return exact file size in stat, so the length check can be disabled with the –L option.


cmp(1), diff(1), history(1), fs(4), hgfs(4)

The exit status is set to 'errors' when errors were encountered.

Derp first appeared in 9front (November, 2012).