X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=finddup.1;h=faaef4de3dc324f2786f6ebb38cf48608c5a926f;hb=e19b97832c28af4781084bffa6bb31553624aa51;hp=3092d756ca655a5e6d53dfb31a7417bccb59f72f;hpb=97491f6c7870239ac72bf775215904a948828f33;p=finddup.git diff --git a/finddup.1 b/finddup.1 index 3092d75..faaef4d 100644 --- a/finddup.1 +++ b/finddup.1 @@ -15,86 +15,108 @@ finddup \- Find files common to two directories (or not) .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 -is the same as +is virtually the same as .B finddup -i DIR DIR .SH "OPTIONS" .TP -\fB-h\fR +\fB-h\fR, \fB--help\fR display help and exit .TP -\fB-d\fR +\fB-d\fR, \fB--ignore-dots\fR ignore files and directories starting with a dot .TP -\fB-0\fR +\fB-0\fR, \fB--ignore-empty\fR ignore empty files .TP -\fB-c\fR +\fB-c\fR, \fB--hide-matchings\fR do not show which files from DIR2 corresponds to files from DIR1 (hence, show only the files from DIR1 which have an identical twin in DIR2) .TP -\fB-g\fR +\fB-g\fR, \fB--no-group-ids\fR do not show the file group IDs .TP -\fB-p\fR +\fB-p\fR, \fB--show-progress\fR show progress information in stderr .TP -\fB-r\fR +\fB-r\fR, \fB--real-paths\fR show the real path of the files .TP -\fB-i\fR +\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" -.B finddup -cg blah something +.B finddup -p0d blah .fi -List files found in \fB./blah/\fR which have a matching file with same -content in \fB./something/\fR. Do not display the group IDs. +List duplicated files in directory ./blah/, show a progress bar, +ignore empty files, and ignore files and directories starting with a +dot. .P .B finddup sources not:/mnt/backup .fi List all files found in \fB./sources/\fR which do not have -content-matching equivalent in \fB/mnt/backup\fR. +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"