Provided by: util-linux-locales_2.41-4ubuntu3_all bug

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                                    2025-07-02                                        HARDLINK(1)