.SH "NAME"
hardlink \- Consolidate duplicate files via hardlinks
.SH "SYNOPSIS"
-.PP
-\fBhardlink\fP [\fB-c\fP] [\fB-n\fP] [\fB-v\fP] [\fB-vv\fP] [\fB-x pattern\fP] [\fB-h\fP] directory1 [ directory2 ... ]
+.B hardlink
+[options]
+.RI [ directory ...]
.SH "DESCRIPTION"
.PP
-This manual page documents \fBhardlink\fP, a
+This manual page documents \fBhardlink\fR, a
program which consolidates duplicate files in one or more directories
using hardlinks.
.PP
-\fBhardlink\fP traverses one
+\fBhardlink\fR traverses one
or more directories searching for duplicate files. When it finds duplicate
files, it uses one of them as the master. 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.
.PP
-Since hard links can only span a single filesystem, \fBhardlink\fP
+Since hard links can only span a single filesystem, \fBhardlink\fR
is only useful when all directories specified are on the same filesystem.
.SH "OPTIONS"
-.PP
-.IP "\fB-c\fP" 10
+.TP
+.BR \-c , " \-\-content"
Compare only the contents of the files being considered for consolidation.
Disregards permission, ownership and other differences.
-.IP "\fB-f\fP" 10
+.TP
+.BR \-f , " \-\-force"
Force hardlinking across file systems.
-.IP "\fB-n\fP" 10
+.TP
+.BR \-n , " \-\-dry\-run"
Do not perform the consolidation; only print what would be changed.
-.IP "\fB-v\fP" 10
-Print summary after hardlinking.
-.IP "\fB-vv\fP" 10
-Print every hardlinked file and bytes saved. Also print summary after hardlinking.
-.IP "\fB-x pattern\fP" 10
+.TP
+.BR \-v , " \-\-verbose"
+Print summary after hardlinking. The option may be specified more than once. In
+this case (e.g., \fB\-vv\fR) it prints every hardlinked file and bytes saved.
+.TP
+.BR \-x , " \-\-exclude " \fIregex\fR
Exclude files and directories matching pattern from hardlinking.
-.IP "\fB-h\fP" 10
-Show help.
-.PP
+.sp
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.
+.TP
+.BR \-h , " \-\-help"
+Display help text and exit.
+.TP
+.BR \-V , " \-\-version"
+Display version information and exit.
.SH "AUTHOR"
.PP
-\fBhardlink\fP was written by Jakub Jelinek <jakub@redhat.com>.
+\fBhardlink\fR was written by Jakub Jelinek <jakub@redhat.com> and later modified by
+Ruediger Meier <ruediger.meier@ga-group.nl> and Karel Zak <kzak@redhat.com> for util-linux.
.PP
Man page written by Brian Long and later updated by Jindrich Novy <jnovy@redhat.com>
.SH "BUGS"
.PP
-\fBhardlink\fP assumes that its target directory trees do not change from under
-it. If a directory tree does change, this may result in \fBhardlink\fP
+\fBhardlink\fR assumes that its target directory trees do not change from under
+it. If a directory tree does change, this may result in \fBhardlink\fR
accessing files and/or directories outside of the intended directory tree.
-Thus, you must avoid running \fBhardlink\fP on potentially changing directory
+Thus, you must avoid running \fBhardlink\fR on potentially changing directory
trees, and especially on directory trees under control of another user.
.PP
-Historically \fBhardlink\fP silently excluded any names beginning with
+Historically \fBhardlink\fR 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
.br
--x '^(\\.in\\.|\\.[^.]{6}$)'
+\-x '^(\\.in\\.|\\.[^.]{6}$)'
.SH AVAILABILITY
The hardlink command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.