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

NAZWA
hardlink - linkuje wiele kopii pliku
SKŁADNIA
hardlink [opcje] katalog|plik...
OPIS
hardlink jest narzędziem zastępującym kopie pliku dowiązaniami zwykłymi (twardymi) lub klonami typu kopia
przy zapisie, oszczędzając miejsce na nośniku.
hardlink najpierw tworzy drzewo binarne z rozmiarami plików, porównując następnie zawartość plików o tym
samym rozmiarze. Występują dwie proste metody porównywania zawartości. Metoda memcmp bezpośrednio
odczytuje bloki danych z plików i porównuje je. Kolejna metoda opiera się na sumach kontrolnych (np.
SHA256); w tym przypadku dla każdego bloku danych obliczana jest suma kontrolna przez kryptograficzny
interfejs programistyczny jądra Linux (crypto); suma ta jest przechowywana w przestrzeni użytkownika i
używana do porównywania plików.
Buforowane jest też początkowe 32 bajtów każdego pliku. Bufor ten jest używany niezależnie od metody
porównywania oraz żądanego rozmiaru bufora i rozmiaru wejścia/wyjścia. Ten bufor początkowy znacznie
ogranicza operacje na zawartości plików, ponieważ pliki bardzo często różnią się od samego początku.
OPCJE
-c, --content
Przy określaniu identyczności plików rozważa tylko zawartość pliku, a nie jego atrybuty. Równoważne
-pot.
-b, --io-size rozmiar
Rozmiar bufora read(2) lub sendfile(2) używanego przy porównywaniu zawartości plików. Po argumencie
rozmiar mogą wystąpić przyrostki określające wielokrotność: KiB, MiB itd. Cząstka "iB" jest
opcjonalna, tzn. np. "K" znaczy to samo co "KiB". Wartością domyślną jest 8KiB w przypadku metody
memcmp i 1MiB w przypadku innych metod. Jedynie metoda memcmp używa pamięci procesu do buforowania,
inne metody korzystają z metody transferu danych bez kopiowania (zero-copy) oraz operacji
wejścia/wyjścia dokonywanych w jądrze. Rozmiar może być dostosowany w locie, aby pomieścić sumy
kontrolne zbuforowanej zawartości.
-d, --respect-dir
Próbuje linkować tylko pliki o tej samej nazwie katalogu. Katalog najwyższego poziomu (podany w
wierszu polecenia hardlink) jest ignorowany. Przykładowo hardlink --respect-dir /foo /bar spowoduje
dowiązanie /foo/jakiś/plik do /bar/jakiś/plik, lecz nie do /bar/inny/plik. Przy łącznym użyciu z
opcją --respect-name, porównywane będą całe ścieżki (poza katalogiem najwyższego poziomu).
-f, --respect-name
Próbuje linkować tylko pliki o tej samej nazwie (basename). Usilnie zaleca się korzystanie z długiej
opcji, zamiast z -f, ponieważ ta krótka opcja jest interpretowana odmiennie przez inne implementacje
hardlink.
-F, --prioritize-trees
Pozostawia pliki znalezione w najwcześniej podanym katalogu najwyższego poziomu, jeśli w różnych
drzewach istnieją identyczne pliki. Na przykład hardlink foo/ bar/ dowiąże pliki w katalogu bar/ do
identycznych plików w katalogu foo/.
-i, --include wyrażenie-regularne
Wyrażenie regularne określające pliki do uwzględnienia. Jeśli podano opcję --exclude, niniejsza opcja
ponownie obejmuje pliki, które zostałyby inaczej wyłączone. Jeśli nie podano opcji --exclude,
uwzględniane są tylko pliki pasujące do podanego wyrażenia.
-m, --maximize
Z identycznych plików, utrzymuje plik o największej liczbie dowiązań.
-M, --minimize
Z identycznych plików, utrzymuje plik o najmniejszej liczbie dowiązań.
-n, --dry-run
Nie dokonuje rzeczywistych zmian, jedynie wypisuje co by się stało.
-l, --list-duplicates
Nie dowiązuje niczego, wypisuje jedynie absolutną ścieżkę każdego zduplikowanego pliku, po jednym na
wiersz, przed którym znajdzie się 16-bajtowy ciąg rozróżniający oraz znak tabulacji.
-z, --zero
W trybie -l rozdziela wiersze znakiem NUL, zamiast znakiem nowego wiersza.
-o, --ignore-owner
Linkuje i porównuje pliki nawet, jeśli różnią się ich informacje właścicielskie (użytkownik i grupa).
Rezultaty mogą być nieprzewidywalne.
-O, --keep-oldest
Z identycznych plików, utrzymuje plik najstarszy (o najdawniejszym czasie modyfikacji). Domyślnie
utrzymywany jest plik najnowszy. Jeśli podano --maximize lub --minimize, liczba dowiązań ma
pierwszeństwo nad czasem modyfikacji.
-p, --ignore-mode
Linkuje i porównuje pliki nawet, gdy różnią się trybem (uprawnieniami). Rezultaty mogą być nieco
nieprzewidywalne.
-q, --quiet
Tryb cichy, niczego nie wypisuje.
-r, --cache-size rozmiar
Rozmiar pamięci podręcznej na sumy kontrolne zawartości plików. Wszystkie metody inne niż memcmp
obliczają sumy kontrolne dla każdego bloku zawartości plików (zob. --io-size), te sumy kontrolne są
buforowane do następnego porównania. Ustawiany rozmiar jest istotny w przypadku dużych plików lub
dużych zbiorów plików o tym samym rozmiarze. Wartość domyślna to 10MiB.
-s, --minimum-size rozmiar
Minimalny rozmiar do uwzględnienia. Domyślnie wynosi 1, dzięki czemu nie są linkowane puste pliki. Po
argumencie rozmiar mogą wystąpić przyrostki określające wielokrotność: KiB(=1024), MiB (=1024*1024)
itd. dla GiB, TiB, PiB, EiB, ZiB i YiB (cząstka "iB" jest opcjonalna, tzn. np. "K" znaczy to samo co
"KiB").
-S, --maximum-size rozmiar
Maksymalny rozmiar do uwzględnienia. Domyślnie wynosi 0, przy czym 0 ma specjalne znaczenie,
oznaczając brak limitu. Po argumencie rozmiar mogą wystąpić przyrostki określające wielokrotność:
KiB(=1024), MiB (=1024*1024) itd. dla GiB, TiB, PiB, EiB, ZiB i YiB (cząstka "iB" jest opcjonalna,
tzn. np. "K" znaczy to samo co "KiB").
-t, --ignore-time
Linkuje i porównuje pliki nawet, jeśli różnią się czasem modyfikacji. Zwykle to dobry wybór.
-v, --verbose
Wyjście szczegółowe, wyjaśniające użytkownikowi co się dzieje. Jeśli poda się opcję jednokrotnie,
wyświetlany jest każdy plik dla którego tworzone jest dowiązanie zwykłe. Jeśli poda się opcję
dwukrotnie, wskazywane jest również każde porównanie.
-x, --exclude wyrażenie-regularne
Wyrażenie regularne wyłączające pliki z porównywania i linkowania. Opcję można podać wielokrotnie.
--exclude-subtree wyrażenie-regularne
Wyrażenie regularne wyłączające całe katalogi z porównywania i linkowania. Opcję można podać
wielokrotnie.
--mount
Nie przechodzi przez katalogi na różnych systemach plików (pozostaje wewnątrz tego samego systemu
plików).
-X, --respect-xattrs
Próbuje linkować tylko pliki o tych samych atrybutach rozszerzonych.
-y, --method nazwa
Ustawia metodę porównywania zawartości plików. Obecnie obsługiwane są: sha256, sha1, crc32c i memcmp.
Domyślną metodą jest sha256; albo memcmp gdy niedostępny jest linuksowy interfejs kryptograficzny
(Crypto). Metody korzystające z sum kontrolnych są zaimplementowane aby korzystać z metody transferu
danych bez kopiowania (zero-copy); zawartość plików nie jest wówczas kopiowana do przestrzeni
użytkownika, a wszystkie obliczenia odbywają się w jądrze.
--reflink[=kiedy]
Tworzy klony typu kopia przy zapisie (inaczej reflinki) zamiast dowiązań zwykłych (twardych). Pliki
tego typu dzielą dane na dysku, ale tryb pliku i własność może być odmienny. Zaleca się łączyć tę
opcję z opcjami --ignore-owner i --ignore-mode. Opcja wymusza --skip-reflinks, aby ignorować pliki
już sklonowane.
Opcjonalnym argumentem kiedy może być never, always lub auto. Jeśli nie poda się argumentu kiedy,
przyjmie domyślną wartość auto; wówczas hardlink sprawdza typ systemu plików i używa reflinków tylko
na BTRFS i XFS, korzystając z dowiązań zwykłych tam, gdzie tworzenie reflinków jest niemożliwe.
Argument always wyłącza sprawdzanie typu systemów plików i tworzenie dowiązań zwykłych - wówczas
dozwolone są tylko reflinki.
--skip-reflinks
Ignoruje już sklonowane pliki. Opcję tę można używać bez --reflink przy tworzeniu klasycznych
dowiązań zwykłych.
-h, --help
Wyświetla ten tekst i wychodzi.
-V, --version
Wyświetla wersję i wychodzi.
ARGUMENTY
hardlink przyjmuje jeden lub więcej katalogów, które zostaną przeszukane pod kątem plików do zlinkowania.
USTERKI
Pierwotna implementacja hardlink używała opcji -f*do wymuszenia tworzenia dowiązań zwykłych pomiędzy
systemami plików. Ta niezwykle rzadko użyteczna opcja nie jest już obsługiwana przez niniejszy program
*hardlink.
hardlink zakłada, że drzewo na którym działa nie zmienia się podczas przebiegu programu. Jeśli drzewo
ulegnie zmianie, rezultaty są niezdefiniowane i potencjalnie niebezpieczne. Na przykład jeśli zwykły plik
zostanie zastąpiony przez urządzenie, hardlink może zacząć odczytywać z urządzenia. Jeśli składowa
ścieżki zostanie zastąpiona przez dowiązanie symboliczne lub zmienią się uprawnienia pliku, może dojść do
naruszenia bezpieczeństwa systemu. Nie należy uruchamiać hardlink na zmieniającym się drzewie ani
drzewie, które kontroluje inny użytkownik.
AUTOR
Istnieje wiele implementacji hardlink. Pierwotna pochodzi od Jakuba Jelinka z dystrybucji Fedora; była
używana w util-linux pomiędzy wersjami v2.34 i v2.36. Bieżąca implementacja powstała w oparciu o wersję z
Debiana, autorstwa Juliana Andresa Klode’a.
ZGŁASZANIE BŁĘDÓW
Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.
DOSTĘPNOŚĆ
Polecenie hardlink jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux
<https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.41 2025-09-22 HARDLINK(1)