.SH "DESCRIPTION"
With a single directory argument, \fBfinddup\fP prints the duplicated
-files found in it. With two directories, it prints either the files
-common to both DIR1 and DIR2, or with the `not:' prefix, the ones
-present in DIR1 and not in DIR2. The and: prefix is assumed by default
-and necessary only if you have a directory name starting with `not:'.
+files found in it.
+
+With two directories, it prints either the files common to both DIR1
+and DIR2 or, with the `not:' prefix, the ones present in DIR1 and not
+in DIR2. The and: prefix is assumed by default and necessary only if
+you have a directory name starting with `not:'.
This command compares files by first comparing their sizes, hence goes
reasonably fast.
-When looking for identical files, \fBfinddup\fP associates by default
-a group ID to every content, and prints it along the file names. Use
-the \fB-g\fP to switch it off.
+When looking for identical files, \fBfinddup\fP associates a group ID
+to every content, and prints it along the file names. Use the \fB-g\fP
+to switch it off.
Note that
.B finddup DIR
.TP
\fB-i\fR, \fB--same-inodes-are-different\fR
files with same inode are considered as different
+.TP
+\fB-m\fR, \fB--md5\fR
+use MD5 hashing (if compiled with the option)
.SH "BUGS"
None known, probably many. Valgrind does not complain though.
+The MD5 hashing is not satisfactory. It is computed for a file only if
+the said file has to be read fully for a comparison (i.e. two files
+match and we have to read them completely).
+
+Hence, in practice lot of partial MD5s are computed, which costs a lot
+of cpu and is useless. This often hurts more than it helps. The only
+case when it should really be useful is when you have plenty of
+different files of same size, and lot of similar ones, which does not
+happen often.
+
+Forcing the files to be read fully so that the MD5s are properly
+computed is not okay neither, since it would fully read certain files,
+even if we will never need their MD5s.
+
+Anyway, it has to be compiled in with 'make WITH_MD5=yes', and even in
+that case it will be off by default
+
.SH "WISH LIST"
The format of the output should definitely be improved. Not clear how.
-The comparison algorithm could definitely use some MD5 kind of
-signature. However, I doubt it would improve speed much.
-
-Their should be some fancy option to link two instances of the command
-running on different machines to reduce network disk accesses.
+Their could be some fancy option to link two instances of the command
+running on different machines to reduce network disk accesses. Again,
+this may not help much, for the reason given above.
.SH "EXAMPLES"
.fi
List duplicated files in directory ./blah/, show a progress bar,
-ignore empty files and files and directories starting with a dot.
+ignore empty files, and ignore files and directories starting with a
+dot.
.P
.B finddup sources not:/mnt/backup
content-matching equivalent in \fB/mnt/backup/\fR.
.P
-.B finddup tralala cuicui
+.B finddup -g tralala cuicui
.fi
List groups of files with same content which exist both in
-\fB./tralala/\fR and \fB./cuicui/\fR.
+\fB./tralala/\fR and \fB./cuicui/\fR. Do not show group IDs, instead
+write an empty lines between groups of files of same content.
.SH "AUTHOR"