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

NUME
hardlink - vinculează mai multe copii ale unui fișier
REZUMAT
hardlink [opțiuni] director|fișier...
DESCRIERE
hardlink este un instrument care înlocuiește copiile unui fișier fie cu legături dure, fie cu clone de
copiere la scriere (copy-on-write clones), economisind astfel spațiu.
hardlink creează mai întâi un arbore binar al dimensiunilor fișierelor și apoi compară conținutul
fișierelor care au aceeași dimensiune. Există două metode de bază de comparare a conținutului. Metoda
memcmp citește direct blocurile de date din fișiere și le compară. Cealaltă metodă se bazează pe sume de
control (cum ar fi SHA256); în acest caz, pentru fiecare bloc de date se calculează o sumă de control
prin API-ul de criptografie al nucleului Linux, iar această sumă de control este stocată în spațiul
utilizatorului și utilizată pentru compararea fișierelor.
Pentru fiecare fișier, este pusă în zona de prestocare (cache) și o memorie tampon (buffer) „intro” (32
de octeți). Această memorie tampon este utilizată independent de metoda de comparație și de „cache-size”
și „io-size” solicitate. Memoria tampon „intro” reduce dramatic operațiunile cu conținutul datelor,
deoarece fișierele sunt foarte des diferite de la început.
OPȚIUNI
-c, --content
Ia în considerare numai conținutul fișierului, nu și atributele, atunci când se stabilește dacă două
fișiere sunt egale. La fel ca -pot.
-b, --io-size dimensiunea
Dimensiunea memoriei tampon read(2) sau sendfile(2) utilizată la compararea conținutului fișierelor.
Argumentul dimensiunea poate fi urmat de sufixele multiplicative KiB, MiB, etc. Sufixul „iB” este
opțional, de exemplu, „K” are aceeași semnificație ca și „KiB”. Valoarea implicită este de 8KiB
pentru metoda „memcmp” și de 1MiB pentru celelalte metode. Doar metoda „memcmp” utilizează memoria de
proces pentru memoria tampon, celelalte metode utilizează modul de copiere zero, iar operațiunea de
intrare/ieșire se realizează în nucleu. Dimensiunea poate fi modificată din mers pentru a se potrivi
unui număr de sume de control a conținutului din zona de stocare (cache).
-d, --respect-dir
Încearcă să lege numai fișierele cu același nume de director. Directorul de nivel superior (așa cum
este specificat în linia de comandă a hardlink) este ignorat. De exemplu, hardlink --respect-dir /foo
/bar va lega /foo/un-dir/fișier cu /bar/un-dir/fișier, dar nu cu /bar/alt-dir/fișier. Dacă este
combinată cu --respect-name, atunci sunt comparate rutele întregi (cu excepția directorului de nivel
superior).
-f, --respect-name
Încearcă să vinculeze numai fișiere cu același nume (de bază). Se recomandă cu tărie utilizarea
opțiunilor lungi mai degrabă decât -f, care este interpretat în mod diferit de alte implementări
hardlink.
-F, --prioritize-trees
Păstrează fișierele găsite în cel mai anterior director de nivel superior specificat dacă există mai
multe fișiere identice în arbori diferiți. De exemplu, hardlink foo/ bar/ va lega fișierele din bar/
la fișiere identice din directorul foo/.
-i, --include exp-reg
O expresie regulată pentru a include fișiere. Dacă a fost introdusă opțiunea --exclude, această
opțiune reinclude fișierele care altfel ar fi fost excluse. În cazul în care opțiunea este utilizată
fără --exclude, sunt incluse numai fișierele care corespund modelului.
-m, --maximize
Dintre fișierele egale, păstrați fișierul cu cel mai mare număr de legături.
-M, --minimize
Dintre fișierele egale, păstrează fișierul cu cel mai mic număr de legături.
-n, --dry-run
Nu face nimic, doar afișează ceea ce s-ar fi făcut.
-l, --list-duplicates
Nu leagă nimic, ci listează ruta absolută a fiecărui fișier duplicat, unul pe linie, precedat de un
identificator unic de 16 octeți și de un tabulator.
-z, --zero
Separă liniile cu un NUL în loc de o linie nouă în modul -l.
-o, --ignore-owner
Vinculează și compară fișierele chiar dacă informațiile despre proprietar (utilizator și grup) sunt
diferite. Rezultatele pot fi imprevizibile.
-O, --keep-oldest
Dintre fișierele egale, păstrează cel mai vechi fișier (cel mai recent timp de modificare). În mod
implicit, se păstrează cel mai nou fișier. Dacă se specifică --maximize sau --minimize, numărul de
legături are prioritate față de momentul modificării.
-p, --ignore-mode
Vinculează și compară fișierele chiar dacă modul lor este diferit. Rezultatele pot fi ușor
imprevizibile.
-q, --quiet
Modul silențios, nu afișează nimic.
-r, --cache-size dimensiunea
Dimensiunea zonei de prestocare (cache) pentru sumele de verificare a conținutului. Toate metodele
diferite de „memcmp” calculează suma de control pentru fiecare bloc de conținut al fișierului (a se
vedea --io-size), aceste sume de control sunt stocate în zona de stocare (cache) pentru următoarea
comparație. Dimensiunea este importantă pentru fișierele mari sau pentru un set mare de fișiere de
aceeași dimensiune. Valoarea implicită este 10Mio (10MiB).
-s, --minimum-size dimensiunea
Dimensiunea minimă de luat în considerare. În mod implicit, valoarea este 1, astfel încât fișierele
goale nu vor fi legate. Argumentul dimensiunea poate fi urmat de sufixele multiplicative KiB (=1024),
MiB (=1024*1024), și așa mai departe pentru GiB, TiB, PiB, EiB, ZiB și YiB („iB” este opțional, de
exemplu, „K” are aceeași semnificație ca și „KiB”).
-S, --maximum-size dimensiunea
Dimensiunea maximă care trebuie luată în considerare. În mod implicit este 0, iar 0 are semnificația
specială de nelimitat. Argumentul dimensiunea poate fi urmat de sufixele multiplicative KiB (=1024),
MiB (=1024*1024), și așa mai departe pentru GiB, TiB, PiB, EiB, ZiB și YiB („iB” este opțional, de
exemplu, „K” are aceeași semnificație ca și „KiB”).
-t, --ignore-time
Vinculează și compară fișierele chiar dacă momentul modificării lor este diferit. Aceasta este de
obicei o alegere bună.
-v, --verbose
Ieșire descriptivă, care explică utilizatorului ce se face. Dacă este specificată o singură dată,
este afișat fiecare fișier cu legătură directă. Dacă este specificată de două ori, se afișează și
fiecare comparație.
-x, --exclude exp-reg
O expresie regulată care exclude fișierele de la a fi comparate și vinculate. Această opțiune poate
fi utilizată de mai multe ori.
--exclude-subtree exp-reg
O expresie regulată care exclude directoare întregi de la a fi comparate și vinculate. Această
opțiune poate fi utilizată de mai multe ori.
--mount
Nu parcurge directoare de pe sisteme de fișiere diferite (rămâne în cadrul aceluiași sistem de
fișiere).
-X, --respect-xattrs
Încercați să vinculeze numai fișiere cu aceleași atribute extinse.
-y, --method nume
Stabilește metoda de comparare a conținutului fișierului. Metodele acceptate în prezent sunt sha256,
sha1, crc32c și memcmp. Valoarea implicită este sha256, sau memcmp dacă Linux Crypto API nu este
disponibil. Metodele bazate pe sume de control sunt implementate în modul „zero-copy”, în acest caz
conținutul fișierului nu este copiat în spațiul utilizatorului și toate calculele sunt efectuate în
nucleu.
--reflink[=când]
Creează clone de copiere la scriere (aka reflink) mai degrabă decât legături dure. Fișierele clonate
cu «reflink» au în comun doar datele de pe disc, dar modul și proprietarul fișierului pot fi
diferite. Se recomandă să o utilizați cu opțiunile --ignore-owner și --ignore-mode. Această opțiune
implică --skip-reflinks pentru a ignora fișierele deja clonate.
Argumentul opțional când poate fi never (niciodată), always (întotdeauna) sau auto. Dacă argumentul
când este omis, valoarea implicită este auto; în acest caz, hardlink verifică tipul de sistem de
fișiere și utilizează opțiunea „--reflink” numai pe BTRFS și XFS, iar în cazul în care crearea unui
fișier (clone) cu «reflink» este imposibilă, se revine la crearea de legături dure. Argumentul always
dezactivează detectarea tipului de sistem de fișiere și revenirea la crearea de legături dure; în
acest caz, sunt permise numai creările de clone cu «reflink».
--skip-reflinks
Ignoră fișierele deja clonate. Această opțiune poate fi utilizată fără --reflink atunci când se
creează legăturile dure clasice.
-h, --help
Afișează acest mesaj de ajutor și iese.
-V, --version
Afișează versiunea și iese.
ARGUMENTE
hardlink preia unul sau mai multe directoare în care vor fi căutate fișierele care urmează să fie
vinculate.
ERORI
Implementarea originală hardlink utilizează opțiunea -f pentru a forța crearea de legături dure între
sistemele de fișiere. Această caracteristică, foarte rar utilizată, nu mai este suportată de actualul
hardlink.
hardlink presupune că arborii pe care operează nu se modifică în timpul funcționării. În cazul în care un
arbore se modifică, rezultatul este nedefinit și potențial periculos. De exemplu, dacă un fișier obișnuit
este înlocuit cu un dispozitiv, hardlink poate începe să citească de pe dispozitiv. Dacă o componentă a
unei rute este înlocuită de o legătură simbolică sau dacă se schimbă permisiunile fișierelor, securitatea
poate fi compromisă. Nu rulați hardlink pe un arbore în schimbare sau pe un arbore controlat de un alt
utilizator.
AUTOR
Există mai multe implementări hardlink. Prima implementare este cea a lui Jakub Jelinek pentru
distribuția Fedora, această implementare a fost utilizată în util-linux între versiunile v2.34 și v2.36.
Implementarea actuală se bazează pe versiunea Debian de la Julian Andres Klode.
RAPORTAREA ERORILOR
Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor
<https://github.com/util-linux/util-linux/issues>.
DISPONIBILITATE
Comanda hardlink face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.41 2026-03-06 HARDLINK(1)