X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=finddup.git;a=blobdiff_plain;f=finddup.1;h=b58fb43f9ea64c1088558f07515cf82602b13826;hp=e262386a1ec035946a50828f69cf6582b3320429;hb=7f3e2c157c93792f6692a133b070d2a3a05e5280;hpb=ab7b6e26f35ac1dfc88d9bf1e09dd289a30ea782 diff --git a/finddup.1 b/finddup.1 index e262386..b58fb43 100644 --- a/finddup.1 +++ b/finddup.1 @@ -1,4 +1,4 @@ -.TH "FINDDUP" 1 "Mar 2010" "Francois Fleuret" "User Commands" +.TH "FINDDUP" "1.1" "Apr 2010" "Francois Fleuret" "User Commands" \" This man page was written by Francois Fleuret \" and is distributed under a Creative Commons Attribution-Share Alike @@ -10,16 +10,17 @@ finddup \- Find files common to two directories (or not) .SH "SYNOPSIS" -\fBfinddup\fP [OPTION]... DIR1 [[and:|not:]DIR2] +\fBfinddup\fP [OPTION]... [DIR1 [[and:|not:]DIR2]] .SH "DESCRIPTION" -With a single directory argument, \fBfinddup\fP prints the duplicated -files found in it. +With one directory as argument, \fBfinddup\fP prints the duplicated +files found in it. If no directory is provided, it uses the current +one as default. 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 +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 @@ -46,13 +47,16 @@ ignore files and directories starting with a dot ignore empty files .TP \fB-c\fR, \fB--hide-matchings\fR -do not show which files from DIR2 corresponds to files from DIR1 +do not show which files from DIR2 correspond 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-t\fR, \fB--time-sort\fR +sort files in each group according to the modification times +.TP \fB-p\fR, \fB--show-progress\fR show progress information in stderr .TP @@ -66,20 +70,28 @@ files with same inode are considered as different 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. +Since files with same inodes are considered as different when looking +for duplicates in a single directory, there are weird behaviors -- not +bugs -- with hard links. + +The current algorithm is dumb, as it does not use any hashing of the +file content. + +Here are the things I tried, which did not help at all: (1) Computing +md5s on the whole files, which is not satisfactory because files are +often not read entirely, hence the md5s can not be properly computed, +(2) computing XORs of the first 4, 16 and 256 bytes with rejection as +soon as one does not match, (3) reading files in parts of increasing +sizes so that rejection could be done with only a small fraction read +when possible, (4) using mmap instead of open/read. .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. +running on different machines to reduce network disk accesses. This +may not help much though. .SH "EXAMPLES" @@ -103,7 +115,7 @@ content-matching equivalent in \fB/mnt/backup/\fR. .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. +write empty lines between groups of files of same content. .SH "AUTHOR"