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

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