În fiecare zi descărcăm, creăm și edităm diferite tipuri de fișiere în sistemul nostru de operare, în acest caz specific vorbim despre Linux și unul dintre eșecurile obișnuite este acela că putem avea frecvent mai multe fișiere duplicate care, nu numai că ocupă un plus spațiu pe hard disk, dar poate deveni un factor confuz atunci când deschideți și editați fișiere.
În multe ocazii avem pe desktop-uri sau servere diverse fișiere, indiferent de formatul acestora, duplicate și nu le știm. Acest lucru generează ocuparea spațiului inutil și posibilitatea de a lucra cu un fișier greșit, deoarece putem edita unul și apoi îl putem deschide pe celălalt etc. O modalitate practică de a ne organiza mai bine mediul de lucru este prin detectarea și eliminarea acestor fișiere duplicate, astfel încât în acest mod să fie posibil să se utilizeze un singur fișier.
Merită să faceți această sarcină nu numai pentru a putea șterge duplicatele, ci și pentru a efectua căutări în care putem elimina și șterge fișierele pe care nu le mai dorim, dar le-am repetat de diferite părți ale sistemului de operare Linux. Indiferent de versiune, așa cum poate fi în Fedora, Ubuntu, Debian, CentOS, printre multe altele.
Am văzut deja în ziua sa cum să găsim fișiere duplicate în Windows, aici ne concentrăm pe mediile Linux, unde avem instrumente atât la nivel grafic, cât și la linia de comandă, care ne vor ajuta să găsim aceste fișiere și să le eliminăm pe cele pe care le considerăm sunt nefolositor.
Solvetic vă va explica cum să detectați și să eliminați fișierele duplicate în Linux într-un mod simplu, dar funcțional.
Ce este utilitarul RdfindRdfind este un instrument de linie de comandă care a fost dezvoltat pentru a detecta fișierele duplicate din director. Utilizarea acestuia poate fi aplicată pentru a comprima directoare de rezervă sau pentru a găsi fișiere duplicate într-un mod simplu, acest utilitar compară fișierele pe baza conținutului lor, dar nu și pe numele fișierelor lor, deoarece se bazează pe suma de control. Rdfind folosește un algoritm pentru a clasifica fișierele și astfel a detecta care dintre duplicate este originalul și, astfel, consideră restul drept duplicate. Regulile de utilizare a Rdfind sunt:
- Dacă A a fost găsit în timpul scanării unui argument de intrare înainte de B, A este clasat mai sus.
- Dacă A a fost găsit la o adâncime mai mică decât B, A este clasat mai sus.
- Dacă A a fost găsit înainte de B, A este clasat mai sus.
Ce este algoritmul RdfindRdfind, după cum am menționat, folosește următorul algoritm în care N este numărul de fișiere de căutat și efortul necesar este O (Nlog (N)). Rdfind sortează fișierele în inoduri înainte de a citi de pe disc, astfel încât acest proces este rapid și citește datele de pe disc numai atunci când este necesar. Algoritmul gestionează următoarele secvențe:
- Se creează o buclă peste fiecare argument de pe linia de comandă, fiecărui argument i se atribuie un număr de prioritate, în ordine crescătoare.
- Pentru fiecare argument, conținutul directorului este listat recursiv și mapat la lista de fișiere.
- Rdfind atribuie un număr de adâncime de director, începând de la 0 pentru fiecare argument.
- Dacă argumentul de intrare este un fișier, acesta va fi adăugat la lista de fișiere.
- Lista este apoi traversată și dimensiunile tuturor fișierelor sunt descoperite.
- Dacă semnalizatorul „-removeidentinode” este adevărat, elementele listei care au fost deja adăugate sunt eliminate, în funcție de combinația dintre numărul dispozitivului și inode.
- Fișierele sunt sortate după mărime, apoi fișierele sunt eliminate din listă, care au dimensiuni unice.
- Este comandat de dispozitiv și de inod care accelerează citirea fișierelor).
- Fișierele din listă care au aceeași dimensiune, dar primii octeți diferiți sunt eliminați.
- Suma de control se execută pentru fiecare fișier.
- Sunt păstrate doar fișierele din listă cu aceeași dimensiune și sumă de control. Acestea sunt duplicatele.
- Lista este sortată după mărime, număr de prioritate și adâncime. Primul fișier din fiecare set de duplicate este considerat original în mod implicit.
- Dacă bifați „-makeresultsfile true”, fișierul cu rezultate este tipărit (implicit).
- Dacă semnalizatorul este „-deleteduplicates true”, fișierele duplicat vor fi șterse.
- Dacă semnalizatorul este „-makesymlinks true”, duplicatele sunt înlocuite cu un link simbolic către original.
- În cazul în care rezultatul este „-face hardlinks true”, continuăm să înlocuim duplicatele cu un link către original.
1. Găsiți fișiere duplicate cu utilitarul Rdfind pe Linux
Pasul 1
Pentru a instala Rdfind în Linux putem executa oricare dintre următoarele comenzi:
sudo apt install rdfind (Debian / Ubuntu / Mint) sudo yum install epel-release && $ sudo yum install rdfind (CentOS / RHEL) sudo dnf install rdfind (Fedora)
Pasul 2
Odată ce Rdfind este descărcat și instalat, îl vom rula într-un director simplu, după cum urmează:
rdfind / home / Solvetic
Pasul 3
Acolo putem vedea că numărul de fișiere din directorul menționat este detectat și indică dacă fișierele duplicate au fost sau nu eliminate. Utilitarul Rdfind va salva rezultatele într-un fișier results.txt situat în același director de unde a fost rulat programul, putem vedea conținutul acestuia folosind cat:
cat results.txt
Pasul 4
O sarcină suplimentară de utilizat cu rdfind este utilizarea parametrului "-dryrun" care va furniza o listă de duplicate fără a lua nicio măsură asupra acestora:
rdfind -dryrun true / home / Solvetic
Pasul 5
În cazul detectării duplicatelor, este posibil să le înlocuiți cu legături dure precum aceasta.
rdfind -makehardlinks true / home / userPasul 6
Pentru a elimina duplicatele trebuie să executăm următoarele:
rdfind -deleteduplicates true / home / userPasul 7
Pentru a accesa ajutorul Rdfind vom folosi următoarea comandă:
om rdfind
2. Găsiți fișiere duplicate cu utilitarul Fdupes pe Linux
O altă opțiune pe care o avem în Linux pentru validarea fișierelor duplicate este Fdupes. Este un instrument de linie de comandă care ne permite să observăm în detaliu ce fișiere avem duplicate pe sistem. Fdupes este un program care a fost dezvoltat pentru a identifica sau elimina fișierele duplicate adăpostite în directoare specifice din Linux, este open source și gratuit și este scris în C.
Caracteristicile FdupesFdupes folosește următoarele metode pentru a determina fișierele duplicate din directoare:
- Compararea semnăturilor parțiale md5sum.
- Comparând toate semnăturile md5sum.
- Verificare comparație byte byte.
Când utilizați Fdupes, vom avea opțiuni de utilizare, cum ar fi:
- Căutare recursivă.
- Excludeți fișierele goale.
- Afișați dimensiunea fișierelor duplicat.
- Eliminați duplicatele imediat.
- Excludeți fișiere cu diferiți proprietari.
Pasul 1
În mod implicit, acest instrument nu este instalat, deci trebuie să introducem următoarea comandă pentru al instala. Pentru a instala Fdupes vom executa următoarea comandă:
sudo apt instalează fdupes
Pasul 2
Odată descărcat, putem rula următoarea linie pentru o căutare simplă. Acolo vor fi afișate fișierele duplicate.
fdupes / cale de căutare
Pasul 3
Pentru a executa o căutare recursivă vom folosi următoarea linie:
fdupes -r / cale de căutare
Pasul 4
Va fi posibil să specificați mai multe directoare și să specificați un director pentru a căuta recursiv după cum urmează:
fdupes -rPasul 5
Dacă dorim ca Fdupes să calculeze dimensiunea fișierelor duplicat, vom folosi opțiunea -S:
fdupes -S
Pasul 6
Pentru a colecta informații sumare despre fișierele găsite vom folosi opțiunea -m:
fdupes -m
Pasul 7
În cazul în care doriți să ștergeți toate duplicatele, vom executa următoarele:
fdupes -dPasul 8
Dacă dorim să accesăm ajutorul utilitarului pe care îl executăm:
fdupes -helpPasul 9
Unele dintre opțiunile generale de utilizare sunt:
Pentru fiecare director selectat, accesați subdirectoarele sale
-r -recurs
Activați căutarea recursivă
-R - recurs
Creați legături simbolice
-s -simlinkuri
Când două sau mai multe fișiere indică aceeași țintă, acestea sunt tratate ca non-duplicate
-H-legături dure
Excludeți fișierele cu lungime zero
-n -nu-gol
Excludeți fișierele ascunse
-A -nohidden
Afișați dimensiunea fișierului duplicat
-S -mărimea
Ștergeți fișierele selectate
-d-șterge
Ascundeți -q-liniște
-q -quiet
Selectați ordinea de sortare pentru ieșire și ștergere după fișier
-o - ***** = BY
Opțiuni de ștergere a fișierului jurnal în LOGFILE
-l --log = LOGFILE
Implementați versiunea Fdupes
-v -versiune
Afișați mesajul de ajutor
-h - ajutor
3. Găsiți fișiere duplicate cu utilitarul FSlint pe Linux
Un alt lucru pe care îl vom folosi este FSlint, care vine în mod implicit în diferitele ditro Linux, cum ar fi Ubuntu, Debian, Fedora etc. Pentru a afla mai multe despre FSlint putem vizita următorul link:
Pasul 1
Putem căuta FSlint din meniul Activități de utilizat.
MARI
Pasul 2
Odată deschis, este necesar să instalăm aplicația, pentru a face acest lucru, trebuie doar să faceți clic pe butonul Instalare și va începe procesul de instalare a utilitarului.
MARI
Pasul 3
Odată ce instrumentul a fost instalat, trecem la executarea acestuia și vom vedea următorul mediu:
Pasul 4
Pentru a începe procesul de căutare pentru toate fișierele duplicat, apăsați butonul „Căutare” situat în partea de jos și rezultatul va fi similar cu acesta. Acolo putem selecta acele fișiere care nu sunt necesare și le putem șterge apăsând butonul Șterge. Instrumentul FSlint poate fi utilizat și de pe terminal în Ubuntu 16.
Pasul 5
Dacă dorim să instalăm instrumentul de la terminal vom introduce comanda:
sudo apt-get install fslint
Pasul 6
Odată ce FSlint este instalat, vom introduce următoarele comenzi pentru a utiliza FSlint. Putem vedea că sunt afișate toate fișierele pe care le avem în sistem.
cd / usr / share / fslint / fslint (Aceasta este calea implicită în Ubuntu) ./fslint / Calea pentru a găsi fișiere
Notă importantăNiciunul dintre aceste instrumente nu șterge fișierele duplicat, ne arată doar ce sunt și trebuie să efectuăm această sarcină manual.
Putem vedea că avem două opțiuni practice pentru a detecta și elimina fișierele duplicate în mediile Linux și, astfel, să gestionăm mai bine spațiul și fișierele de utilizat.