Provided by: util-linux-locales_2.41-4ubuntu4.2_all 

BEZEICHNUNG
hardlink - mehrere Kopien einer Datei verlinken
ÜBERSICHT
hardlink [options] directory|file...
BESCHREIBUNG
hardlink ist ein Werkzeug, das Kopien einer Datei durch harte Links oder Kopieren-beim-Schreiben-Clones
(copy-on-write clones) ersetzt und dadurch Platz spart.
hardlink erstellt zunächst einen Binärbaum aus Dateigrößen und vergleicht anschließend den Inhalt von
Dateien gleicher Größe. Es gibt zwei grundlegende Methoden zum Vergleichen der Inhalte. Die
memcmp-Methode liest Datenblöcke direkt aus den Dateien und vergleicht sie. Die andere Methode basiert
auf Checksummen (wie SHA256); in diesem Fall wird für jeden Datenblock die Checksumme mit Hilfe der
Crypto-API des Linux-Kernels errechnet und diese Checksumme im Anwenderbereich gespeichert und für
Dateivergleiche verwendet.
Für jede Datei wird auch ein »intro«-Puffer (32 bytes) zwischengespeichert. Dieser Puffer wird unabhängig
von der Vergleichsmethode und angeforderten »cache-size« und »io-size« verwendet. Der »intro«-Puffer
reduziert Operationen mit Dateninhalten erheblich, da Dateien am Anfang oft sehr unterschiedlich sind.
OPTIONEN
-c, --content
berücksichtigt bei der Bestimmung, ob zwei Dateien gleich sind, nur Dateiinhalte, jedoch keine
Attribute. Gleichbedeutend mit -pot.
-b, --io-size Größe
gibt die Größe des read(2)- oder sendfile(2)-Puffers beim Vergleichen von Dateiinhalten an. Dem
Argument Größe kann eines der multiplikativen Suffixe KiB, MiB und so weiter folgen (das »iB« ist
optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«). Die Vorgabe ist 8KiB für die
memcmp-Methode und 1MiB für die anderen Methoden. Die Nur-memcmp-Methode verwendet Prozessspeicher
für den Puffer, während die anderen Methoden ohne Kopiervorgänge arbeiten und die E/A-Operationen im
Kernel ausgeführt werden. Die Größe kann im laufenden Betrieb geändert werden, um eine Reihe von
zwischengespeicherten Inhalts-Checksummen anzupassen.
-d, --respect-dir
versucht, nur Dateien mit dem gleichen Verzeichnisnamen zu verlinken. Das Verzeichnis der obersten
Ebene (wie in der Befehlszeile von hardlink angegeben) wird dabei ignoriert. Beispielsweise verlinkt
hardlink --respect-dir /foo /bar /bla/eine/datei mit /blub/eine/datei, aber nicht /blub/andere/datei.
Wenn Sie dies mit *--respect-name*kombinieren, werden ganze Pfade (ohne das Verzeichnis der obersten
Ebene) verglichen.
-f, --respect-name
versucht, nur Dateien mit dem gleichen Namen (bzw. Basisnamen) zu verlinken. Es wird ausdrücklich
empfohlen, statt -f besser lange Optionen zu verwenden, da dies von anderen
hardlink-Implementierungen anders interpretiert wird.
-F, --prioritize-trees
Keep files found in the earliest specified top-level directory if there are multiple identical files
in different trees. For example, hardlink foo/ bar/ will link files in bar/ to equal files in the
foo/ directory.
-i, --include regulärer-Ausdruck
gibt einen regulären Ausdruck zur Einbeziehung von Dateien an. Falls die Option --exclude angegeben
ist, bezieht diese Option Dateien ein, die ansonsten ausgeschlossen werden würden. Falls die Option
ohne --exclude verwendet wird, werden nur Dateien einbezogen, die mit dem Muster übereinstimmen.
-m, --maximize
behält von gleichen Dateien diejenige mit der größten Anzahl der Links.
-M, --minimize
behält von gleichen Dateien diejenige mit der kleinsten Anzahl der Links.
-n, --dry-run
führt nichts aus, sondern gibt nur aus, was geändert werden würde.
-l, --list-duplicates
Don’t link anything, but list the absolute path of every duplicate file, one per line, preceded by a
unique 16-byte discriminator and a tab.
-z, --zero
Separate lines with a NUL instead of a newline in -l mode.
-o, --ignore-owner
verlinkt beziehungsweise vergleicht Dateien selbst dann, wenn deren Eigentümer (Benutzer und Gruppe)
unterschiedlich sind. Dies könnte unberechenbar sein.
-O, --keep-oldest
behält von gleichen Dateien die älteste Datei (diejenige mit der neuesten Änderungszeit).
Standardmäßig wird die neueste Datei behalten. Falls --maximize oder --minimize angegeben ist, hat
die Anzahl der Links Vorrang vor der Änderungszeit.
-p, --ignore-mode
verlinkt beziehungsweise vergleicht Dateien selbst dann, wenn deren Modi unterschiedlich sind. Dies
könnte unberechenbar sein.
-q, --quiet
unterdrückt die Ausgaben.
-r, --cache-size Größe
gibt die Größe des Zwischenspeichers für Inhalts-Checksummen an. Alle Nicht-memcmp-Methoden berechnen
die Checksumme für jeden Block des Dateiinhalts (siehe --io-size), wobei diese Checksummen für den
nächsten Vergleich gespeichert werden. Die Größe ist für große Dateien oder große Anzahlen gleich
großer Dateien bedeutsam. Die Vorgabe ist 10MiB.
-s, --minimum-size Größe
gibt die minimale zu berücksichtigende Größe an, die standardmäßig 1 ist, so dass leere Dateien nicht
verlinkt werden. Dem Argument Größe eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024)
und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K«
gleichbedeutend mit »KiB«).
-S, --maximum-size Größe
gibt die maximale zu berücksichtigende Größe an, die standardmäßig 0 ist, was unbegrenzt bedeutet.
Dem Argument Größe kann eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter
für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K«
gleichbedeutend mit »KiB«).
-t, --ignore-time
verlinkt beziehungsweise vergleicht Dateien selbst dann, wenn deren Änderungszeiten unterschiedlich
sind. Dies ist üblicherweise eine gute Wahl.
-v, --verbose
aktiviert die ausführliche Ausgabe, die dem Benutzer erklärt, was geschieht. Falls dies einmal
angegeben ist, wird jede hart verlinkte Datei angezeigt; bei zweimaliger Angabe wird auch jeder
Vergleich angezeigt.
-x, --exclude regulärer-Ausdruck
A regular expression that excludes files from being compared and linked. This option can be used
multiple times.
--exclude-subtree regex
A regular expression that excludes entire directories from being compared and linked. This option can
also be used multiple times.
--mount
Do not traverse directories on different filesystems (remain within the same filesystem).
-X, --respect-xattrs
versucht, nur Dateien mit den gleichen erweiterten Attributen zu verlinken.
-y, --method Name
legt die Dateivergleichsmethode fest. Gegenwärtig werden sha256, sha1, crc32c und memcmp. Die Vorgabe
ist sha256, oder memcmp, falls die Linux-Crypto-API nicht verfügbar ist. Die auf Checksummen
basierenden Methoden sind ohne Kopiervorgänge implementiert. In diesem Fall werden Dateiinhalte nicht
in den Anwenderbereich kopiert und sämtliche Berechnungen im Kernel ausgeführt.
--reflink[=when]
erstellt Copy-on-write-Clones (sogenannte Reflinks) anstelle von harten Links. Die so erstellten
Dateien haben lediglich die gleichen Inhalte, doch Dateimodus und -eigentümerschaft können
unterschiedlich sein. Es wird empfohlen, dies mit den Optionen --ignore-owner und --ignore-mode zu
verwenden. Diese Option impliziert --skip-reflinks, um bereits geklonte Dateien zu ignorieren.
Das optionale Argument wann kann never, always oder auto sein. Falls das Argument wann weggelassen
wird, ist auto die Voreinstellung. In diesem Fall prüft hardlink den Dateisystemtyp und verwendet
Reflinks nur auf BTRFS und XFS und fällt auf harte Links zurück, wenn die Erstellung von Reflinks
unmöglich ist. Das Argument always deaktiviert die Erkennung des Dateisystemtyps und das Ausweichen
auf harte Links, wobei in diesem Fall nur Reflinks erlaubt sind.
--skip-reflinks
ignoriert bereits geklonte Dateien. Diese Option kann beim Erstellen klassischer harter Links ohne
--reflink verwendet werden.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
-V, --version
Display version and exit.
ARGUMENTE
hardlink akzeptiert ein oder mehrere Verzeichnisse, die nach zu verlinkenden Dateien durchsucht werden
sollen.
FEHLER
Die ursprüngliche hardlink-Implementierung verwendet die Option -f, um die Erzeugung harter Links über
Dateisystemgrenzen hinweg zu erzwingen. Diese kaum sinnvoll nutzbare Funktion wird vom aktuellen hardlink
nicht mehr unterstützt.
hardlink geht davon aus, dass sich die Verzeichnisbäume, in denen es agiert, während der
Programmausführung nicht verändern. Falls dies dennoch geschieht, ist das Ergebnis nicht definiert und
potenziell gefährlich. Wenn beispielsweise eine reguläre Datei durch eine Gerätedatei ersetzt wird,
könnte hardlink damit beginnen, von diesem Gerät zu lesen. Falls eine Pfadkomponente durch einen
symbolischen Link ersetzt wird oder sich Dateizugriffsrechte ändern, könnte die Sicherheit beeinträchtigt
werden. Führen Sie hardlink niemals in einem sich ändernden Verzeichnisbaum aus oder in einem, über den
ein anderer Benutzer die Kontrolle hat.
AUTOR
Es gibt mehrere hardlink-Implementierungen. Die allererste Implementierung stammt von Jakub Jelinek für
die Fedora-Distribution; diese Implementierung wurde in Util-linux von den Versionen 2.34 bis 2.36
genutzt. Die gegenwärtige Implementierung basiert auf der Debian-Version von Julian Andres Klode.
FEHLER MELDEN
For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT
Der Befehl hardlink ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv
<https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.
util-linux 2.41 2026-03-06 HARDLINK(1)