HARDLINK(1)

NUME
hardlink - vinculează mai multe copii ale unui fișier

REZUMAT

hardlink [options] directory|file...

DESCRIERE

hardlink is a tool that replaces copies of a file with either hardlinks or copy-on-write clones, thus saving space.

hardlink first creates a binary tree of file sizes and then compares the content of files that have the same size. There are two basic content comparison methods. The memcmp method directly reads data blocks from files and compares them. The other method is based on checksums (like SHA256); in this case for each data block a checksum is calculated by the Linux kernel crypto API, and this checksum is stored in userspace and used for file comparisons.

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

-h, --help
    Afișează acest mesaj de ajutor și iese.

-V, --version
    Afișează informațiile despre versiune și iese.

-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.

-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.

-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.

-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.

ARGUMENTE

hardlink takes one or more directories which will be searched for files to be linked.

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 assumes that the trees it operates on do not change during operation. If a tree does change, the result is undefined and potentially dangerous. For example, if a regular file is replaced by a device, hardlink may start reading from the device. If a component of a path is replaced by a symbolic link or file permissions change, security may be compromised. Do not run hardlink on a changing tree or on a tree controlled by another user.

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 la

DISPONIBILITATE

Comanda hardlink face parte din pachetul util-linux care poate fi descărcat de la