X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=finddup.git;a=blobdiff_plain;f=finddup.1;h=334b5868b8c8adc2d18167ac91bec8008b8c4d08;hp=2da4ee3dc12e5b24d40182090bd9cfca0d4e2943;hb=4b3ca4135c1d7b1f11c0dd0df53624863f1e0688;hpb=8c988a4aca00501c9a9d53f4ff228dcb0bce0acb diff --git a/finddup.1 b/finddup.1 index 2da4ee3..334b586 100644 --- a/finddup.1 +++ b/finddup.1 @@ -1,4 +1,4 @@ -.TH "FINDDUP" 1 "Mar 2010" "Francois Fleuret" "User Commands" +.TH "FINDDUP" "1.2" "Apr 2011" "Francois Fleuret" "User Commands" \" This man page was written by Francois Fleuret \" and is distributed under a Creative Commons Attribution-Share Alike @@ -20,7 +20,7 @@ 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 @@ -37,8 +37,11 @@ is virtually the same as .SH "OPTIONS" .TP +\fB-v\fR, \fB--version\fR +print the version number and exit +.TP \fB-h\fR, \fB--help\fR -display help and exit +print the help and exit .TP \fB-d\fR, \fB--ignore-dots\fR ignore files and directories starting with a dot @@ -47,13 +50,19 @@ 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-q\fR, \fB--trim-first\fR +do not print the first file in each group +.TP \fB-p\fR, \fB--show-progress\fR show progress information in stderr .TP @@ -62,20 +71,33 @@ 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 +.TP +\fB-e \fI\fR, \fB--exec \fI\fR +execute the provided command for each group of identical files, with +their names as arguments +.TP +\fB-f \fI\fR, \fB--result-prefix \fI\fR +for each group of identical files, write one result file whose name is +the given prefix string followed by the group number, and containing +one file name per line .SH "BUGS" None known, probably many. Valgrind does not complain though. +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 never read entirely hence the md5s can not be properly computed, -(2) computing XOR of the first 4, 16 and 256 bytes with rejection as -soon as one does not match, (3) reading parts of the files of -increasing sizes so that rejection could be done with a small fraction +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" @@ -95,6 +117,14 @@ List duplicated files in directory ./blah/, show a progress bar, ignore empty files, and ignore files and directories starting with a dot. +.B finddup -qtg + +.fi +List all files which are duplicated in the current directory, do not +show the oldest in each each group of identical ones, and do not show +group numbers. This is what you could use to list what files to +remove. + .P .B finddup sources not:/mnt/backup @@ -108,7 +138,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"