'\" t .\" Title: hardlink .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Comenzi utilizator .\" Source: util-linux 2.41 .\" Language: English .\" .TH "HARDLINK" "1" "2025-03-29" "util\-linux 2.41" "Comenzi utilizator" .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 "NUME" hardlink \- vinculează mai multe copii ale unui fișier .SH "REZUMAT" .sp \fBhardlink\fP [opțiuni] \fIdirector\fP|\fIfișier\fP... .SH "DESCRIERE" .sp \fBhardlink\fP 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. .sp \fBhardlink\fP 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 \fBmemcmp\fP 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. .sp 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. .SH "OPȚIUNI" .sp \fB\-c\fP, \fB\-\-content\fP .RS 4 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 \fB\-pot\fP. .RE .sp \fB\-b\fP, \fB\-\-io\-size\fP \fIdimensiunea\fP .RS 4 Dimensiunea memoriei tampon \fBread\fP(2) sau \fBsendfile\fP(2) utilizată la compararea conținutului fișierelor. Argumentul \fIdimensiunea\fP 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). .RE .sp \fB\-d\fP, \fB\-\-respect\-dir\fP .RS 4 Î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 \fBhardlink\fP) este ignorat. De exemplu, \fBhardlink \-\-respect\-dir /foo /bar\fP va lega \fI/foo/un\-dir/fișier\fP cu \fI/bar/un\-dir/fișier\fP, dar nu cu \fI/bar/alt\-dir/fișier\fP. Dacă este combinată cu \fB\-\-respect\-name\fP, atunci sunt comparate rutele întregi (cu excepția directorului de nivel superior). .RE .sp \fB\-f\fP, \fB\-\-respect\-name\fP .RS 4 Î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 \fB\-f\fP, care este interpretat în mod diferit de alte implementări \fBhardlink\fP. .RE .sp \fB\-F\fP, \fB\-\-prioritize\-trees\fP .RS 4 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, \fBhardlink foo/ bar/\fP va lega fișierele din bar/ la fișiere identice din directorul foo/. .RE .sp \fB\-i\fP, \fB\-\-include\fP \fIexp\-reg\fP .RS 4 O expresie regulată pentru a include fișiere. Dacă a fost introdusă opțiunea \fB\-\-exclude\fP, această opțiune reinclude fișierele care altfel ar fi fost excluse. În cazul în care opțiunea este utilizată fără \fB\-\-exclude\fP, sunt incluse numai fișierele care corespund modelului. .RE .sp \fB\-m\fP, \fB\-\-maximize\fP .RS 4 Dintre fișierele egale, păstrați fișierul cu cel mai mare număr de legături. .RE .sp \fB\-M\fP, \fB\-\-minimize\fP .RS 4 Dintre fișierele egale, păstrează fișierul cu cel mai mic număr de legături. .RE .sp \fB\-n\fP, \fB\-\-dry\-run\fP .RS 4 Nu face nimic, doar afișează ceea ce s\-ar fi făcut. .RE .sp \fB\-l\fP, \fB\-\-list\-duplicates\fP .RS 4 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. .RE .sp \fB\-z\fP, \fB\-\-zero\fP .RS 4 Separă liniile cu un NUL în loc de o linie nouă în modul \fB\-l\fP. .RE .sp \fB\-o\fP, \fB\-\-ignore\-owner\fP .RS 4 Vinculează și compară fișierele chiar dacă informațiile despre proprietar (utilizator și grup) sunt diferite. Rezultatele pot fi imprevizibile. .RE .sp \fB\-O\fP, \fB\-\-keep\-oldest\fP .RS 4 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ă \fB\-\-maximize\fP sau \fB\-\-minimize\fP, numărul de legături are prioritate față de momentul modificării. .RE .sp \fB\-p\fP, \fB\-\-ignore\-mode\fP .RS 4 Vinculează și compară fișierele chiar dacă modul lor este diferit. Rezultatele pot fi ușor imprevizibile. .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 Modul silențios, nu afișează nimic. .RE .sp \fB\-r\fP, \fB\-\-cache\-size\fP \fIdimensiunea\fP .RS 4 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 \fB\-\-io\-size\fP), 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). .RE .sp \fB\-s\fP, \fB\-\-minimum\-size\fP \fIdimensiunea\fP .RS 4 Dimensiunea minimă de luat în considerare. În mod implicit, valoarea este 1, astfel încât fișierele goale nu vor fi legate. Argumentul \fIdimensiunea\fP 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”). .RE .sp \fB\-S\fP, \fB\-\-maximum\-size\fP \fIdimensiunea\fP .RS 4 Dimensiunea maximă care trebuie luată în considerare. În mod implicit este 0, iar 0 are semnificația specială de nelimitat. Argumentul \fIdimensiunea\fP 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”). .RE .sp \fB\-t\fP, \fB\-\-ignore\-time\fP .RS 4 Vinculează și compară fișierele chiar dacă momentul modificării lor este diferit. Aceasta este de obicei o alegere bună. .RE .sp \fB\-v\fP, \fB\-\-verbose\fP .RS 4 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. .RE .sp \fB\-x\fP, \fB\-\-exclude\fP \fIexp\-reg\fP .RS 4 O expresie regulată care exclude fișierele de la a fi comparate și vinculate. Această opțiune poate fi utilizată de mai multe ori. .RE .sp \fB\-\-exclude\-subtree\fP \fIexp\-reg\fP .RS 4 O expresie regulată care exclude directoare întregi de la a fi comparate și vinculate. Această opțiune poate fi utilizată de mai multe ori. .RE .sp \fB\-\-mount\fP .RS 4 Nu parcurge directoare de pe sisteme de fișiere diferite (rămâne în cadrul aceluiași sistem de fișiere). .RE .sp \fB\-X\fP, \fB\-\-respect\-xattrs\fP .RS 4 Încercați să vinculeze numai fișiere cu aceleași atribute extinse. .RE .sp \fB\-y\fP, \fB\-\-method\fP \fInume\fP .RS 4 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. .RE .sp \fB\-\-reflink\fP[\fB=\fP\fIcând\fP] .RS 4 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 \fB\-\-ignore\-owner\fP și \fB\-\-ignore\-mode\fP. Această opțiune implică \fB\-\-skip\-reflinks\fP pentru a ignora fișierele deja clonate. .sp Argumentul opțional \fIcând\fP poate fi \fBnever\fP (niciodată), \fBalways\fP (întotdeauna) sau \fBauto\fP. Dacă argumentul \fIcând\fP este omis, valoarea implicită este \fBauto\fP; în acest caz, \fBhardlink\fP 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 \fBalways\fP 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». .RE .sp \fB\-\-skip\-reflinks\fP .RS 4 Ignoră fișierele deja clonate. Această opțiune poate fi utilizată fără \fB\-\-reflink\fP atunci când se creează legăturile dure clasice. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Afișează acest mesaj de ajutor și iese. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Afișează versiunea și iese. .RE .SH "ARGUMENTE" .sp \fBhardlink\fP preia unul sau mai multe directoare în care vor fi căutate fișierele care urmează să fie vinculate. .SH "ERORI" .sp Implementarea originală \fBhardlink\fP utilizează opțiunea \fB\-f\fP 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 \fBhardlink\fP. .sp \fBhardlink\fP 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, \fBhardlink\fP 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 \fBhardlink\fP pe un arbore în schimbare sau pe un arbore controlat de un alt utilizator. .SH "AUTOR" .sp Există mai multe implementări \fBhardlink\fP. 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. .SH "RAPORTAREA ERORILOR" .sp Pentru rapoarte de eroare, folosiți \c .URL "https://github.com/util\-linux/util\-linux/issues" "sistemul de urmărire al erorilor" "." .SH "DISPONIBILITATE" .sp Comanda \fBhardlink\fP face parte din pachetul util\-linux care poate fi descărcat de la \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."