X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=finddup.1;h=e262386a1ec035946a50828f69cf6582b3320429;hb=ab7b6e26f35ac1dfc88d9bf1e09dd289a30ea782;hp=3ae9a42e13e0603b97083281ec35d55f9b9fd43f;hpb=574390d2a9daf2fb484baa4bae31cfc824c912f0;p=finddup.git diff --git a/finddup.1 b/finddup.1 index 3ae9a42..e262386 100644 --- a/finddup.1 +++ b/finddup.1 @@ -1,41 +1,109 @@ +.TH "FINDDUP" 1 "Mar 2010" "Francois Fleuret" "User Commands" + \" This man page was written by Francois Fleuret \" and is distributed under a Creative Commons Attribution-Share Alike \" 3.0 License. -.TH "FINDDUP" 1 "Mar 2010" "Francois Fleuret" "User Commands" - .SH "NAME" finddup \- Find files common to two directories (or not) .SH "SYNOPSIS" -\fBfinddup\fP [OPTION]... DIR1 [[^]DIR2] +\fBfinddup\fP [OPTION]... DIR1 [[and:|not:]DIR2] .SH "DESCRIPTION" -\fBfinddup\fP is a command line utility to find duplicate files, files -common to two directories or files existing in one directory and not -in another one. +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:'. + +This command compares files by first comparing their sizes, hence goes +reasonably fast. -With a single directory argument, prints the duplicate files found in -it. With two directories, prints the files common to both. +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. -If the second directory name starts with a ^, prints the files -existing in DIR1 which do not exist in DIR2. +Note that +.B finddup DIR +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-r\fR -shows the real path of the files +\fB-d\fR, \fB--ignore-dots\fR +ignore files and directories starting with a dot +.TP +\fB-0\fR, \fB--ignore-empty\fR +ignore empty files +.TP +\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--no-group-ids\fR +do not show the file group IDs +.TP +\fB-p\fR, \fB--show-progress\fR +show progress information in stderr +.TP +\fB-r\fR, \fB--real-paths\fR +show the real path of the files +.TP +\fB-i\fR, \fB--same-inodes-are-different\fR +files with same inode are considered as different .SH "BUGS" -Every pair of different files with same content are listed, which -results in K^2 printed lines when K files are similar. +None known, probably many. Valgrind does not complain though. + +The current algorithm is dumb, that is it does not use any hashing of +the file content. I tried md5 on the whole file, which is not +satisfactory because files are often never read entirely hence the md5 +can not be properly computed. I also tried XOR of the first 4, 16 and +256 bytes with rejection as soon as one does not match. Did not help +either. + +.SH "WISH LIST" + +The format of the output should definitely be improved. Not clear how. + +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 -p0d blah + +.fi +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. + +.P +.B finddup -g tralala cuicui + +.fi +List groups of files with same content which exist both in +\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"