Freedup walks through the file trees (directories) you specify. When it finds two identical files on the same device, it hard links them together.
In this case two or more files still exist in their respective directories, but only one copy of the data is stored on disk; both directory entries point to the same data blocks.
If both files reside on different devices, then they are symlinked together except there are relative paths given (and the -s option is unused).
Syntax of freedup:
USAGE: freedup [options] < dir1 > [< dir2 > ...]
-a provide compatibility to freedups by William Stearns.[=-up]
-c count file space savings per file.
-d requires the modification time stamps to be equal.
-f requires the path-stripped file names to be equal.
-h shows this help. [other option are ignored]
-m < bytes > only touch larger files. (deprecated: use -o "-size +#c")
-n do not really perform links [`n'o action].
-o < opts > pass an option string to the initially called find command.
-p requires file permissions to be equal.
-s generate symlinks although some given paths are relative.
-u requires user & group to be equal.
-v display shell commands to perform linking [verbose].
< dir > any directory to scan for duplicate files recursively.
Options are toggle switches. Their final state applies.
Later < dir > entries are linked to the earlier ones.
How freedup works:
1) scan all directory trees recursively for all regular files
2) build a list of those files and keep their name, lstat() and arg position
3) sort the files by comparing their sizes using qsort()
4) in case the comparison has to report equal file size additional properties are compared
5) most property checks have to be added using command line options
6) if all demands are fullfilled, the files are compared block by block (4k)
7) if both files are identical and on the same file system they will be renamed, hard linked, renamed file removed.
8) if hardlinking is not possible soft links are tried, except one of the paths is not starting at root (but can be forced)
9) sorting is repeated, the reason why it is needed was not checked yet
10) finally a short report is delivered
What's New in This Release:
· This release removes leftover debugging statements.
· It also provides HTML documentation with the RPM file.
· Additionally, the installation preparation for the new Web interface can be tested.
· But be aware there is currently no usable Web interface to start freedup.