hardlink(1) General Commands Manual hardlink(1)
NAME
hardlink - Consolidate duplicate files via hardlinks
SYNOPSIS
hardlink [-c] [-n] [-v] [-vv] [-x pattern] [-h] directory1 [ directory2
... ]
DESCRIPTION
This manual page documents hardlink, a program which consolidates
duplicate files in one or more directories using hardlinks.
hardlink traverses one or more directories searching for duplicate
files. When it finds duplicate files, it uses one of them as the mas-
ter. It then removes all other duplicates and places a hardlink for
each one pointing to the master file. This allows for conservation of
disk space where multiple directories on a single filesystem contain
many duplicate files.
Since hard links can only span a single filesystem, hardlink is only
useful when all directories specified are on the same filesystem.
OPTIONS
-c Compare only the contents of the files being considered for
consolidation. Disregards permission, ownership and other
differences.
-f Force hardlinking across file systems.
-n Do not perform the consolidation; only print what would be
changed.
-v Print summary after hardlinking.
-vv Print every hardlinked file and bytes saved. Also print sum-
mary after hardlinking.
-x pattern
Exclude files and directories matching pattern from hardlink-
ing.
-h Show help.
The optional pattern for excluding files and directories must be a
PCRE2 compatible regular expression. Only the basename of the file or
directory is checked, not its path. Excluded directories' contents will
not be examined.
AUTHOR
hardlink was written by Jakub Jelinek <jakub AT redhat.com>.
Man page written by Brian Long.
Man page updated by Jindrich Novy <jnovy AT redhat.com>
BUGS
hardlink assumes that its target directory trees do not change from
under it. If a directory tree does change, this may result in hardlink
accessing files and/or directories outside of the intended directory
tree. Thus, you must avoid running hardlink on potentially changing
directory trees, and especially on directory trees under control of
another user.
Historically hardlink silently excluded any names beginning with
".in.", as well as any names beginning with "." followed by exactly 6
other characters. That prior behavior can be achieved by specifying
-x '^(\.in\.|\.[^.]{6}$)'
hardlink(1)