'\" t
.\"     Title: hardlink
.\"    Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.23
.\"      Date: 2025-04-09
.\"    Manual: Polecenia użytkownika
.\"    Source: util-linux 2.41
.\"  Language: English
.\"
.TH "HARDLINK" "1" "2025-04-09" "util\-linux 2.41" "Polecenia użytkownika"
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
.  mso www.tmac
.  am URL
.    ad l
.  .
.  am MTO
.    ad l
.  .
.  LINKSTYLE blue R < >
.\}
.SH "NAZWA"
hardlink \- linkuje wiele kopii pliku
.SH "SKŁADNIA"
.sp
\fBhardlink\fP [opcje] \fIkatalog\fP|\fIplik\fP...
.SH "OPIS"
.sp
\fBhardlink\fP 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.
.sp
\fBhardlink\fP 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 \fBmemcmp\fP 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.
.sp
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.
.SH "OPCJE"
.sp
\fB\-c\fP, \fB\-\-content\fP
.RS 4
Przy określaniu identyczności plików rozważa tylko zawartość pliku, a nie jego atrybuty. Równoważne \fB\-pot\fP.
.RE
.sp
\fB\-b\fP, \fB\-\-io\-size\fP \fIrozmiar\fP
.RS 4
Rozmiar bufora \fBread\fP(2) lub \fBsendfile\fP(2) używanego przy porównywaniu zawartości plików. Po argumencie \fIrozmiar\fP 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.
.RE
.sp
\fB\-d\fP, \fB\-\-respect\-dir\fP
.RS 4
Próbuje linkować tylko pliki o tej samej nazwie katalogu. Katalog najwyższego poziomu (podany w wierszu polecenia \fBhardlink\fP) jest ignorowany. Przykładowo \fBhardlink \-\-respect\-dir /foo /bar\fP spowoduje dowiązanie \fI/foo/jakiś/plik\fP do \fI/bar/jakiś/plik\fP, lecz nie do \fI/bar/inny/plik\fP. Przy łącznym użyciu z opcją \fB\-\-respect\-name\fP, porównywane będą całe ścieżki (poza katalogiem najwyższego poziomu).
.RE
.sp
\fB\-f\fP, \fB\-\-respect\-name\fP
.RS 4
Próbuje linkować tylko pliki o tej samej nazwie (basename). Usilnie zaleca się korzystanie z długiej opcji, zamiast z \fB\-f\fP, ponieważ ta krótka opcja jest interpretowana odmiennie przez inne implementacje \fBhardlink\fP.
.RE
.sp
\fB\-F\fP, \fB\-\-prioritize\-trees\fP
.RS 4
Pozostawia pliki znalezione w najwcześniej podanym katalogu najwyższego poziomu, jeśli w różnych drzewach istnieją identyczne pliki. Na przykład \fBhardlink foo/ bar/\fP dowiąże pliki w katalogu bar/ do identycznych plików w katalogu foo/.
.RE
.sp
\fB\-i\fP, \fB\-\-include\fP \fIwyrażenie\-regularne\fP
.RS 4
Wyrażenie regularne określające pliki do uwzględnienia. Jeśli podano opcję \fB\-\-exclude\fP, niniejsza opcja ponownie obejmuje pliki, które zostałyby inaczej wyłączone. Jeśli nie podano opcji \fB\-\-exclude\fP, uwzględniane są tylko pliki pasujące do podanego wyrażenia.
.RE
.sp
\fB\-m\fP, \fB\-\-maximize\fP
.RS 4
Z identycznych plików, utrzymuje plik o największej liczbie dowiązań.
.RE
.sp
\fB\-M\fP, \fB\-\-minimize\fP
.RS 4
Z identycznych plików, utrzymuje plik o najmniejszej liczbie dowiązań.
.RE
.sp
\fB\-n\fP, \fB\-\-dry\-run\fP
.RS 4
Nie dokonuje rzeczywistych zmian, jedynie wypisuje co by się stało.
.RE
.sp
\fB\-l\fP, \fB\-\-list\-duplicates\fP
.RS 4
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.
.RE
.sp
\fB\-z\fP, \fB\-\-zero\fP
.RS 4
W trybie \fB\-l\fP rozdziela wiersze znakiem NUL, zamiast znakiem nowego wiersza.
.RE
.sp
\fB\-o\fP, \fB\-\-ignore\-owner\fP
.RS 4
Linkuje i porównuje pliki nawet, jeśli różnią się ich informacje właścicielskie (użytkownik i grupa). Rezultaty mogą być nieprzewidywalne.
.RE
.sp
\fB\-O\fP, \fB\-\-keep\-oldest\fP
.RS 4
Z identycznych plików, utrzymuje plik najstarszy (o najdawniejszym czasie modyfikacji). Domyślnie utrzymywany jest plik najnowszy. Jeśli podano \fB\-\-maximize\fP lub \fB\-\-minimize\fP, liczba dowiązań ma pierwszeństwo nad czasem modyfikacji.
.RE
.sp
\fB\-p\fP, \fB\-\-ignore\-mode\fP
.RS 4
Linkuje i porównuje pliki nawet, gdy różnią się trybem (uprawnieniami). Rezultaty mogą być nieco nieprzewidywalne.
.RE
.sp
\fB\-q\fP, \fB\-\-quiet\fP
.RS 4
Tryb cichy, niczego nie wypisuje.
.RE
.sp
\fB\-r\fP, \fB\-\-cache\-size\fP \fIrozmiar\fP
.RS 4
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. \fB\-\-io\-size\fP), 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.
.RE
.sp
\fB\-s\fP, \fB\-\-minimum\-size\fP \fIrozmiar\fP
.RS 4
Minimalny rozmiar do uwzględnienia. Domyślnie wynosi 1, dzięki czemu nie są linkowane puste pliki. Po argumencie \fIrozmiar\fP 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").
.RE
.sp
\fB\-S\fP, \fB\-\-maximum\-size\fP \fIrozmiar\fP
.RS 4
Maksymalny rozmiar do uwzględnienia. Domyślnie wynosi 0, przy czym 0 ma specjalne znaczenie, oznaczając brak limitu. Po argumencie \fIrozmiar\fP 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").
.RE
.sp
\fB\-t\fP, \fB\-\-ignore\-time\fP
.RS 4
Linkuje i porównuje pliki nawet, jeśli różnią się czasem modyfikacji. Zwykle to dobry wybór.
.RE
.sp
\fB\-v\fP, \fB\-\-verbose\fP
.RS 4
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.
.RE
.sp
\fB\-x\fP, \fB\-\-exclude\fP \fIwyrażenie\-regularne\fP
.RS 4
Wyrażenie regularne wyłączające pliki z porównywania i linkowania. Opcję można podać wielokrotnie.
.RE
.sp
\fB\-\-exclude\-subtree\fP \fIwyrażenie\-regularne\fP
.RS 4
Wyrażenie regularne wyłączające całe katalogi z porównywania i linkowania. Opcję można podać wielokrotnie.
.RE
.sp
\fB\-\-mount\fP
.RS 4
Nie przechodzi przez katalogi na różnych systemach plików (pozostaje wewnątrz tego samego systemu plików).
.RE
.sp
\fB\-X\fP, \fB\-\-respect\-xattrs\fP
.RS 4
Próbuje linkować tylko pliki o tych samych atrybutach rozszerzonych.
.RE
.sp
\fB\-y\fP, \fB\-\-method\fP \fInazwa\fP
.RS 4
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.
.RE
.sp
\fB\-\-reflink\fP[\fB=\fP\fIkiedy\fP]
.RS 4
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 \fB\-\-ignore\-owner\fP i \fB\-\-ignore\-mode\fP. Opcja wymusza \fB\-\-skip\-reflinks\fP, aby ignorować pliki już sklonowane.
.sp
Opcjonalnym argumentem \fIkiedy\fP może być \fBnever\fP, \fBalways\fP lub \fBauto\fP. Jeśli nie poda się argumentu \fIkiedy\fP, przyjmie domyślną wartość \fBauto\fP; wówczas \fBhardlink\fP 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 \fBalways\fP wyłącza sprawdzanie typu systemów plików i tworzenie dowiązań zwykłych \- wówczas dozwolone są tylko reflinki.
.RE
.sp
\fB\-\-skip\-reflinks\fP
.RS 4
Ignoruje już sklonowane pliki. Opcję tę można używać bez \fB\-\-reflink\fP przy tworzeniu klasycznych dowiązań zwykłych.
.RE
.sp
\fB\-h\fP, \fB\-\-help\fP
.RS 4
Wyświetla ten tekst i wychodzi.
.RE
.sp
\fB\-V\fP, \fB\-\-version\fP
.RS 4
Wyświetla wersję i wychodzi.
.RE
.SH "ARGUMENTY"
.sp
\fBhardlink\fP przyjmuje jeden lub więcej katalogów, które zostaną przeszukane pod kątem plików do zlinkowania.
.SH "USTERKI"
.sp
Pierwotna implementacja \fBhardlink\fP używała opcji \fB\-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\fP.
.sp
\fBhardlink\fP 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, \fBhardlink\fP 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ć \fBhardlink\fP na zmieniającym się drzewie ani drzewie, które kontroluje inny użytkownik.
.SH "AUTOR"
.sp
Istnieje wiele implementacji \fBhardlink\fP. 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\(cqa.
.SH "ZGŁASZANIE BŁĘDÓW"
.sp
Problemy należy zgłaszać w \c
.URL "https://github.com/util\-linux/util\-linux/issues" "systemie śledzenia błędów" "."
.SH "DOSTĘPNOŚĆ"
.sp
Polecenie \fBhardlink\fP jest częścią pakietu util\-linux, który można pobrać ze strony \c
.URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Archiwum jądra Linux" "."
