DESCRIPTION
dupfind finds copies of files in the directory trees pathname. It dis-
tinguishes between hardlinked files, softlinked files, and actual copies.
The options control the output. Per default, nothing is output.
-c Write statistical summary at program exit.
-s Report symbolic links.
-h Report hard links.
-d Report non-linked copies.
-v Write debugging output. This is intended for development purposes.
-0 Do not consider files of size 0 to be copies of each other.
-p Write a progress indicator to stderr (currently searched directory).
The output, written to stdout, consists of one line per copy, each con-
taining the names and the size of 2 identical files. Lines starting with
``=='' are hardlinks, those starting with ``||'' are actual copies, and
those starting with ``->'' are softlinks; the filenames and the length
(in bytes) are enclosed in ``><'' and separated with whitespace. The
output is intended to be easily parseable by other programs such as
awk(1). An example shellskript (generating HTML pages with awk) is part
of the source distribution.
dupfind works by searching the directory trees recursively; it stores the
filenames it encounters into a database along with the file lengths. If
it later encounters a file with the same length, it calculates a checksum
on both files (which is also stored in the database so it needs to be
calculated at most once per file). If the checksums match too, then the
files are compared directly. Usually only very few checksums need to be
calculated, and almost no files need to be compared.
ENVIRONMENT AND FILES
dupfind uses two temporary db(3) databases for its work. These databases
will be created in the path indicated by the TMPDIR environment variable.
If the variable does not exist, the databases are created in ``/tmp''.
The databases are not deleted at program end if the flag -v is supplied
on the command line. Their size is roughly proportional to the number of
files found in the directory trees.
EXAMPLES
To find hardlinks and copies in the directory tree starting at ``/home''
and output a summary, while storing the databases in the current direc-
tory, use
env TMPDIR=. dupfind -hdc /home
Man(1) output converted with
man2html