Dubbele bestanden vinden en verwijderen in Linux

Elke dag downloaden, maken en bewerken we verschillende soorten bestanden in ons besturingssysteem, in dit specifieke geval hebben we het over Linux, en een van de veelvoorkomende fouten is dat we vaak meerdere dubbele bestanden kunnen hebben die niet alleen een extra ruimte op de harde schijf, maar kan een storende factor worden bij het openen en bewerken van bestanden.

Bij veel gelegenheden hebben we op onze desktops of servers verschillende bestanden, ongeacht hun formaat, duplicaten en we weten het niet. Dit genereert onnodig ruimte innemen en het kunnen werken met een verkeerd bestand omdat we het ene kunnen bewerken en vervolgens het andere kunnen openen, enz. Een praktische manier om onze werkomgeving beter in te richten is door deze dubbele bestanden te detecteren en te elimineren, zodat het mogelijk is om van één enkel bestand gebruik te maken.

Het is de moeite waard om deze taak uit te voeren, niet alleen om de duplicaten te kunnen wissen, maar ook om zoekopdrachten uit te voeren waar we de bestanden kunnen verwijderen en verwijderen die we niet langer willen maar hebben herhaald door verschillende delen van het Linux-besturingssysteem. Ongeacht de versie zoals het kan zijn in Fedora, Ubuntu, Debian, CentOS en vele anderen.

We hebben in zijn tijd al gezien hoe dubbele bestanden in Windows kunnen worden gevonden, hier richten we ons op Linux-omgevingen, waar we tools hebben zowel op grafisch niveau als op de opdrachtregel, die ons zullen helpen deze bestanden te vinden en de bestanden te elimineren waarvan we denken dat ze zijn niet bruikbaar.

Solvetic zal uitleggen hoe dubbele bestanden in Linux op een eenvoudige maar functionele manier kunnen worden gedetecteerd en geëlimineerd.

Wat is het hulpprogramma Rdfind?Rdfind is een opdrachtregelprogramma dat is ontwikkeld om dubbele bestanden in de map te detecteren. Het gebruik ervan kan worden toegepast om back-upmappen te comprimeren of om op een eenvoudige manier dubbele bestanden te vinden. Dit hulpprogramma vergelijkt bestanden op basis van hun inhoud, maar niet op hun bestandsnamen omdat het gebaseerd is op de controlesom. Rdfind maakt gebruik van een algoritme om de bestanden te classificeren en zo te detecteren welke van de duplicaten het origineel is en dus de rest als duplicaten te beschouwen. De regels voor het gebruik van Rdfind zijn:

  • Als A werd gevonden tijdens het scannen van een invoerargument vóór B, wordt A hoger gerangschikt.
  • Als A is gevonden op een diepte die kleiner is dan B, wordt A hoger gerangschikt.
  • Als A eerder werd gevonden dan B, wordt A hoger gerangschikt.

Wat is het algoritme van Rdfind?Rdfind maakt, zoals we hebben vermeld, gebruik van het volgende algoritme waarbij N het aantal te doorzoeken bestanden is en de vereiste inspanning O (Nlog (N)) is. Rdfind sorteert bestanden in inodes voordat ze van schijf worden gelezen, dus dit proces is snel en leest alleen gegevens van schijf als dat nodig is. Het algoritme beheert de volgende reeksen:

  • Er wordt een lus gemaakt over elk argument op de opdrachtregel, elk argument krijgt een prioriteitsnummer toegewezen, in oplopende volgorde.
  • Voor elk argument wordt de inhoud van de map recursief weergegeven en toegewezen aan de lijst met bestanden.
  • Rdfind wijst voor elk argument een directory-dieptenummer toe, beginnend bij 0.
  • Als het invoerargument een bestand is, wordt het toegevoegd aan de bestandenlijst.
  • De lijst wordt vervolgens doorkruist en de grootte van alle bestanden wordt ontdekt.
  • Als de vlag "-removeidentinode" waar is, worden de elementen van de lijst die al zijn toegevoegd, verwijderd volgens de combinatie van apparaatnummer en inode.
  • Bestanden worden gesorteerd op grootte en vervolgens worden bestanden verwijderd uit de lijst, die unieke groottes hebben.
  • Het is geordend op apparaat en inode, wat het lezen van bestanden versnelt).
  • Bestanden in de lijst die dezelfde grootte hebben, maar verschillende eerste bytes, worden verwijderd.
  • De controlesom wordt uitgevoerd voor elk bestand.
  • Alleen bestanden in de lijst met dezelfde grootte en controlesom worden bewaard. Dit zijn de duplicaten.
  • De lijst is gesorteerd op grootte, prioriteitsnummer en diepte. Het eerste bestand in elke set duplicaten wordt standaard als het origineel beschouwd.
  • Als u "-makeresultsfile true" aanvinkt, wordt het resultatenbestand afgedrukt (standaard).
  • Als de vlag "-deleteduplicates true" is, worden de dubbele bestanden verwijderd.
  • Als de vlag "-makesymlinks true" is, worden de duplicaten vervangen door een symbolische link naar het origineel.
  • Als het resultaat "-makehardlinks true" is, gaan we verder met het vervangen van de duplicaten door een link naar het origineel.

1. Vind dubbele bestanden met het Rdfind-hulpprogramma op Linux

Stap 1
Om Rdfind in Linux te installeren, kunnen we elk van de volgende opdrachten uitvoeren:

 sudo apt install rdfind (Debian / Ubuntu / Mint) sudo yum install epel-release && $ sudo yum install rdfind (CentOS / RHEL) sudo dnf install rdfind (Fedora) 

Stap 2
Zodra Rdfind is gedownload en geïnstalleerd, gaan we het als volgt in een eenvoudige map uitvoeren:

 rdfind / home / Solvetic 

Stap 3
Daar kunnen we zien dat het aantal bestanden in de genoemde map wordt gedetecteerd en het geeft aan of dubbele bestanden al dan niet zijn verwijderd. Het Rdfind-hulpprogramma slaat de resultaten op in een results.txt-bestand dat zich in dezelfde map bevindt als waar het programma werd uitgevoerd, we kunnen de inhoud ervan zien met cat:

 kat resultaten.txt 

Stap 4
Een extra taak om te gebruiken met rdfind is om de parameter "-dryrun" te gebruiken die een lijst met duplicaten geeft zonder er actie op te ondernemen:

 rdfind -dryrun true / home / Solvetic 

Stap 5
In het geval van het detecteren van duplicaten, is het mogelijk om ze te vervangen door hardlinks zoals deze.

 rdfind -makehardlinks true / home / gebruiker 
Stap 6
Om duplicaten te elimineren, moeten we het volgende uitvoeren:
 rdfind -deletedupliceert true / home / user 
Stap 7
Om toegang te krijgen tot de hulp van Rdfind zullen we de volgende opdracht gebruiken:
 man rdfind 

2. Vind dubbele bestanden met het hulpprogramma Fdupes op Linux


Een andere optie die we in Linux hebben om dubbele bestanden te valideren, is Fdupes. Het is een opdrachtregelprogramma waarmee we in detail kunnen zien welke bestanden we dubbel op het systeem hebben. Fdupes is een programma dat is ontwikkeld om dubbele bestanden in specifieke mappen in Linux te identificeren of te verwijderen, het is open source en gratis en het is geschreven in C.

Kenmerken van FdupesFdupes maakt gebruik van de volgende methoden om dubbele bestanden in mappen te bepalen:

  • Het vergelijken van gedeeltelijke md5sum handtekeningen.
  • Alle handtekeningen van md5sum vergelijken.
  • Byte-by-byte vergelijking check.

Bij het gebruik van Fdupes hebben we opties voor gebruik zoals:

  • Recursief zoeken.
  • Sluit lege bestanden uit.
  • Geef de grootte van dubbele bestanden weer.
  • Verwijder duplicaten onmiddellijk.
  • Sluit bestanden met verschillende eigenaren uit.

Stap 1
Deze tool is standaard niet geïnstalleerd, dus we moeten de volgende opdracht invoeren om deze te installeren. Om Fdupes te installeren, voeren we de volgende opdracht uit:

 sudo apt install fdupes 

Stap 2
Eenmaal gedownload, kunnen we de volgende regel uitvoeren voor een eenvoudige zoekopdracht. Daar worden de dubbele bestanden weergegeven.

 fdupes / pad om te zoeken 

Stap 3
Om een ​​recursieve zoekopdracht uit te voeren, gebruiken we de volgende regel:

 fdupes -r / pad om te zoeken 

Stap 4
Het is mogelijk om als volgt meerdere directory's op te geven en een directory te specificeren om recursief te zoeken:

 fdupes -r 
Stap 5
Als we willen dat Fdupes de grootte van dubbele bestanden berekent, gebruiken we de optie -S:
 fdupes -S 

Stap 6
Om beknopte informatie over de gevonden bestanden te verzamelen, gebruiken we de optie -m:

 fdupes -m 

Stap 7
Als u alle duplicaten wilt verwijderen, zullen we het volgende uitvoeren:

 fdupes -d 
Stap 8
Als we toegang willen krijgen tot de hulp van het hulpprogramma, voeren we het volgende uit:
 fdupes -help 
Stap 9
Enkele van de algemene gebruiksopties zijn:

Ga voor elke geselecteerde map naar de bijbehorende submappen

 -r -recursie 

Recursief zoeken activeren

 -R --recursie 

Symbolische links maken

 -s -symbolen 

Wanneer twee of meer bestanden naar hetzelfde doel verwijzen, worden ze behandeld als niet-duplicaten

 -H -hardlinks 

Bestanden met lengte nul uitsluiten

 -n -noempty 

Verborgen bestanden uitsluiten

 -A -niet verborgen 

Dubbele bestandsgrootte weergeven

 -S -maat 

Geselecteerde bestanden verwijderen

 -d -verwijderen 

Verberg de -q -quiet

 -q -stil 

Selecteer sorteervolgorde voor uitvoer en verwijdering op bestand

 -o - ***** = BY 

Opties voor het verwijderen van logbestanden naar LOGFILE

 -l --log = LOGBESTAND 

De Fdupes-versie implementeren

 -v -versie 

Het helpbericht weergeven

 -h - help 

3. Vind dubbele bestanden met het FSlint-hulpprogramma op Linux


Een andere die we gaan gebruiken is FSlint, dat standaard wordt geleverd in de verschillende Linux-ditro's zoals Ubuntu, Debian, Fedora, enz. Voor meer informatie over FSlint kunnen we de volgende link bezoeken:

Stap 1
We kunnen FSlint zoeken in het menu Activiteiten om te gebruiken.

VERGROTEN

Stap 2
Eenmaal geopend is het noodzakelijk dat we de applicatie installeren, om dit te doen, klikt u gewoon op de knop Installeren en het installatieproces van het hulpprogramma zal starten.

VERGROTEN

Stap 3
Nadat de tool is geïnstalleerd, gaan we verder met de uitvoering ervan en zien we de volgende omgeving:

Stap 4
Om het zoekproces voor alle dubbele bestanden te starten, drukt u op de knop "Zoeken" onderaan en het resultaat zal er ongeveer zo uitzien. Daar kunnen we die bestanden selecteren die niet nodig zijn en ze verwijderen door op de knop Verwijderen te drukken. De FSlint-tool kan ook worden gebruikt vanaf de terminal in Ubuntu 16.

Stap 5
Als we de tool vanaf de terminal willen installeren, voeren we de opdracht in:
sudo apt-get install fslint

Stap 6
Zodra FSlint is geïnstalleerd, voeren we de volgende opdrachten in om FSlint te gebruiken. We kunnen zien dat alle bestanden waarvan we duplicaten hebben in het systeem worden weergegeven.

 cd / usr / share / fslint / fslint (Dit is het standaardpad in Ubuntu) ./fslint / Pad om bestanden te vinden

Belangrijke notitieGeen van deze tools wist dubbele bestanden, het laat ons alleen zien wat ze zijn en we moeten deze taak handmatig uitvoeren.

We kunnen zien dat we twee praktische opties hebben om dubbele bestanden in Linux-omgevingen te detecteren en te elimineren en zo de ruimte en de te gebruiken bestanden beter te beheren.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave