- En Linux Za iskanje podvojenih datotek po vsebini obstajajo konzolna orodja (fdupes, rdfind, fclones, yadf) in grafična orodja (FSlint, dupeGuru, Czkawka).
- Sodobni pripomočki, kot sta fclones in yadf, omogočajo filtriranje po velikosti, vzorcih in številu kopij ter ponujajo načine simulacije za preprečevanje nenamernega brisanja.
- Grafične aplikacije omogočajo enostaven vizualni pregled rezultatov in izbiro, kaj izbrisati, premakniti ali povezati, ne da bi si morali zapomniti možnosti. terminal.
- Bistveno je, da najprej preizkusite na testnih poteh, uporabite poskusne načine in vzdržujete varnostne kopije, preden množično izbrišete podvojene datoteke.
Če Linux uporabljate vsak dan, boste prej ali slej naleteli na tipično opozorilo o pomanjkanje prostora na disku, medtem ko prisegate, da komaj kaj shraniteVarnostne kopije, descargas Ponavljajoče se fotografije, ogromne slike RAW, videoposnetki, tisočkrat podvojeni dokumenti ... vse se sešteva, dokler sistemu ne začne zmanjkovati prostora.
Dobra novica je, da imamo v GNU/Linuxu veliko pripomočkov, tako vrstica ukazi kot tudi z grafičnim vmesnikom za zaznavanje in odstranjevanje podvojenih datotek dokaj varno. Slaba novica je, da če ne veste, kaj počnete, lahko izbrišete nekaj pomembnega. Zato si bomo ogledali vsa klasična in sodobna orodja, kako delujejo in katere previdnostne ukrepe morate upoštevati.
Zakaj je vredno iskati podvojene datoteke v Linuxu
Trdi diski so danes relativno poceni, vendar količina podatkov, ki jih shranjujemo, nenehno narašča, in velik del teh podatkov je ... zelo velike datoteke, kot so fotografije RAW, videoposnetki visoke ločljivosti in celotne varnostne kopijeČe imate tudi več klonov iste datoteke, razporejenih po različnih mapah, je lahko izgubljeni prostor ogromen.
V skupnih okoljih, kot so datotečni strežniki v šoli ali podjetju, je zelo pogosto, da vsak uporabnik ustvari svojo kopijo skupnih dokumentov, namesto da bi uporabljal simbolične ali trde povezave, ki kažejo na izvirno datotekoRezultat je skladišče, polno dvojnikov, kjer sistem obupno potrebuje prostor.
Poleg porabe prostora podvojitve vplivajo tudi na organizacijo. Zlahka se zgodi, da imate več različic iste datoteke na različnih lokacijah in ne veste, kaj se dogaja. Kateri je original, kateri je dobra kopija in katerega bi morali izbrisati?Zato je pomembno imeti orodja, ki pregledujejo vsebino datotek, ne le imena.
Pristopi k odkrivanju dvojnikov: konzola v primerjavi z grafičnim vmesnikom
V Linuxu lahko težavo rešimo s terminalskimi pripomočki ali grafičnimi aplikacijami. Konzolne aplikacije, kot so fdupes, rdfind, fclones ali yadf se zelo dobro integrirajo v napredne skripte in tokove.in ponavadi so hitrejši in bolj prilagodljivi pri filtriranju rezultatov.
Po drugi strani pa, če želite mirno pregledati svoje fotografije na 500 GB zunanjem trdem disku in se brez strahu odločiti, kaj boste izbrisali, boste verjetno ugotovili, da je veliko bolj priročno za uporabo. grafični vmesniki, kot so FSlint, dupeGuru, Czkawka, Krokiet ali fclones-guikjer so rezultati prikazani v seznamih s polji za kljukico in odkljukico.
fdupes: klasično orodje za iskanje dvojnikov iz terminala
fdupes je eno najstarejših in najbolj uporabljenih orodij za iskanje podvojenih datotek v Linuxu iz ukazne vrstice.Napisana je v jeziku C, je brezplačna programska oprema in jo boste našli v repozitorijih praktično katere koli distribucije.
Njihova metodologija je precej trdna: najprej primerjajo Izmeri velikost datotek, nato izračuna delne podpise MD5, nato celotne podpise MD5 in na koncu izvede primerjavo bajt za bajtom. da se zagotovi, da sta dve datoteki enaki. To preprečuje lažne pozitivne rezultate, ki temeljijo izključno na zgoščenih vrednostih ali imenih.
V Debianu, Ubuntuju in izvedenih sistemih ga lahko namestite z:
sudo apt-get install fdupes
V distribucijah, kot je Red Hat in derivatih, bi uporabili:
sudo yum install fdupes
Fedora (dnf) ali Arch Linux imata na voljo tudi pakete:
sudo dnf install fdupes
sudo pacman -S fdupes
Ko je program nameščen, je osnovna uporaba za seznam podvojenih datotek v imeniku, kot je mapa s prenosi, preprosta kot:
fdupes ~/Descargas
Če želite analizo biti rekurziven in vključevati vse poddirektorije, dodajte možnost -r:
fdupes -r ~/Descargas
Zanemariti prazne datoteke, ki samo zapolnijo seznam, Lahko uporabiš:
fdupes -n <ruta del directorio>
Če želite vedeti, koliko zmogljivosti vaš sistem porablja za podvojitve, imate na voljo možnost -S, ki prikaže velikost podvojenih datotek:
fdupes -S <ruta del directorio>
Če pa potrebujete poročilo za kasnejšo obdelavo z drugimi orodji, lahko izhod vedno preusmerite v besedilno datoteko:
fdupes <ruta del directorio> > output.txt
Odstranite podvojene datoteke s fdupes (zelo previdno)
fdupes ne le najde klonirane datoteke, ampak vam lahko pomaga tudi pri njihovem čiščenju. Z možnostjo -d program Vprašal vas bo, skupino za skupino, katero datoteko želite obdržati. in bo odpravil ostalo:
fdupes -d <ruta del directorio>
Obstaja možnost nadaljnje avtomatizacije procesa s parametri, kot so –delete, –noprompt ali -N, ki vsilijo brisanje podvojenih datotek in ohranijo le prvo najdeno datotekoToda v praksi je njihova uporaba na slepo izjemno tvegana.
Če želite igrati na varno, je zelo priporočljiv pristop uporaba fdupes samo za Ustvarite seznam podvojenih poti datotek in jih nato premaknite na drugo lokacijo z uporabo mvNa ta način lahko pregledate to "karanteno", preden izvedete končno brisanje:
fdupes -r <ruta> > duplicados.log
Prav tako je vredno razmisliti o možnosti -m, ki ponuja povzetek števila podvojenih datotek in skupnega prostora, ki ga zasedajo, kar je zelo uporabno za ocenite, koliko boste zaslužili s čiščenjem:
fdupes -m <ruta del directorio>
Končno bodite zelo previdni s parametrom -s, saj povzroča duplikate fdupov. sledite simbolnim povezavam (symlinks)Če to združite z možnostmi brisanja, se lahko zgodi, da se dotaknete datotek zunaj poti, ki ste jo nameravali analizirati, saj vas povezave vodijo do drugih območij datotečnega sistema.
rdfind: iskanje odvečnih podatkov z inteligentnim pristopom
rdfind (iskanje redundantnih podatkov) je še en zelo priljubljen pripomoček za odkrivanje podvojenih datotek v Linuxu.Je tudi brezplačna programska oprema in je na voljo v glavnih repozitorijih: apt, yum, dnf, pacman itd.
Njegova filozofija je podobna fdupes, vendar vključuje lasten algoritem za razvrščanje za odločanje Katere datoteke smatrate za "originalne" in katere za podvojene?Pravila prednosti, ki jih uporablja, so:
- Če je bila datoteka A najdena med razčlenjevanjem vhodnih argumentov pred datoteko B, potem A ima prednost pred B.
- Če je A na nižji globinski ravni kot B (bližje skeniranemu korenskemu imeniku), ima A prednost.
- Če sta oba kriterija izenačena, ostane pri tisti, ki je bil prvi najden med skeniranjem.
Če ga želite namestiti v Debian ali Ubuntu, preprosto:
sudo apt-get install rdfind
CentOS/RHEL običajno zahteva repozitorij EPEL:
sudo yum install epel-release
sudo yum install rdfind
Na voljo je tudi v paketu Fedora in Arch Linux:
sudo dnf install rdfind
sudo pacman -S rdfind
Osnovna uporaba ni zapletena. Za analizo osebnega imenika bi naredili nekaj takega:
rdfind /home/usuario
Program bo zapisal datoteko z imenom results.txt v imeniku, iz katerega ste ga zagnaliTa datoteka vsebuje vse zaznane podvojene skupine. Pregledate jo lahko in se odločite, kaj storiti ročno ali avtomatizirati nadaljnja dejanja.
Če želite prvi prehod brez dotikanja, je možnost -dryrun vaš zaveznik. Ustvari podvojeno poročilo, vendar brez uporabe sprememb v datotečnem sistemu:
rdfind -dryrun true /home/usuario
Zelo zanimiva lastnost programa rdfind je, da vam omogoča, da namesto brisanja, Zamenjajte podvojene datoteke s trdimi povezavami, pri čemer se na disku hrani ena sama fizična kopija podatkov:
rdfind -makehardlinks true /home/usuario
Če želite neposredno odstraniti podvojene datoteke, ga lahko pokličete takole (spet je najbolje, da ga najprej preizkusite v testni mapi):
rdfind -deleteduplicates true /home/usuario
fclones in yadf: sodobna in zelo hitra orodja
Poleg klasičnih so se v zadnjih letih pojavile nove pripomočke, kot so fclones in yadf, napisana v Rustu in z izjemno zmogljivostjo na velikih diskihZasnovani so tako, da so zelo hitri, pri čemer upoštevajo velikosti datotek, zgoščene vrednosti in primerjave bajtov le, kadar je to resnično potrebno.
fclones: skupine, povezave, premiki in odstranjevanje podvojenih elementov
fclones je definiran kot orodje za iskanje in odstranjevanje podvojenih datotek iz terminalaVendar njegova moč sega veliko dlje: prepozna skupine enakih datotek in omogoča različna dejanja z njimi, od brisanja do zamenjave s povezavami ali odstranjevanja podvojenih datotek z uporabo zmogljivosti datotečnega sistema za kopiranje ob pisanju.
V Arch Linuxu in derivatih ga lahko namestite iz AUR z:
paru -S fclones
V drugih distribucijah razvijalec priporoča, da ga prevedete iz izvorne kode z uporabo cargo:
cargo install fclones
Po namestitvi je zelo koristno omogočiti samodejno dokončanje glede na vašo lupino tako, da v konfiguracijo dodate vrstico, kot je ta:
- Bash:
eval "$(fclones complete bash)"en~/.bashrc - zsh:
source <(fclones complete zsh)en~/.zshrc - Ribe:
fclones complete fish | sourceen~/.config/fish/config.fish
Ukaz fclones razdeli operacije na več podukazov, kar vas prisili, da Jasno ločite trenutek, ko zaznate dvojnike, od trenutka, ko jih spremenite ali izbrišete.:
- skupina: identificira skupine enakih datotek in jih izpiše na standardni izhod.
- odstrani: odstrani odvečne datoteke na podlagi izhoda, ki ga je predhodno ustvarila skupina.
- povezava: zamenja podvojene besede s "trdimi povezavami" ali simbolnimi povezavami.
- premikanje: premakne podvojene datoteke v ciljni imenik, ki ga določite.
- odstranitev podvajanjaV datotečnih sistemih s kopiranjem ob pisanju odstrani podvojene podatke brez brisanja datotek in skupne rabe notranjih blokov.
Za iskanje dvojnikov v trenutnem imeniku bi bil najpreprostejši ukaz:
fclones group .
Če vas zanima filtriranje po velikosti, na primer samo datoteke, večje od 10 MB, bi dodali:
fclones group -s 10M .
Omejite se lahko tudi na tiste datoteke, ki imajo več kot določeno število kopijNa primer, več kot pet nastopov:
fclones group . --rf-over 5
In seveda podpira vzorce poimenovanja, kar je idealno pri delu z nizi fotografij ali slik:
fclones group . --name '*.jpg' '*.png'
Ko imate seznam podvojenih polj (na primer v datoteki z imenom duplicates.txt), lahko uporabite različna dejanja. Na primer, zamenjajte podvojene podatke s trdimi povezavami bi:
fclones link <duplicados.txt
Če imate raje simbolne povezave:
fclones link -s <duplicados.txt
Če želite vse podvojene datoteke poslati v drugo mapo »karantena«:
fclones move target_dir <duplicados.txt
In za neposredno brisanje:
fclones remove <duplicados.txt
V vseh teh primerih lahko tudi veriženje ukazov z uporabo cevnih povezavNa primer, če želite hkrati združiti in izbrisati:
fclones group . | fclones remove
Čeprav to deluje, je veliko bolj smiselno vključiti to možnost – suhi tek da bi videli, kaj se bo zgodilo, ne da bi se česar koli dotaknili, na primer:
fclones group . | fclones remove --dry-run
Ta simulacijski način vam bo prihranil več kot en glavobol, še posebej, če delate na diskih s pomembnimi podatki.
yadf: Še en iskalnik dvojnikov
yadf (Yet Another Duplicate Finder) je še eno sodobno orodje, napisano v Rustu, za iskanje dvojnikov., z dokaj čisto sintakso in strategijo analize korak za korakom: najprej združi po velikosti, nato izračuna zgoščene vrednosti le tam, kjer je to potrebno, in na koncu potrdi enakost s primerjavami bajt za bajtom.
Njegova uporaba je res preprosta. Če želite najti dvojnike v trenutnem imeniku, preprosto zaženite:
yadf
Če želite primerjati dve določeni poti, na primer dokumente in slike, lahko storite naslednje:
yadf ~/Documents ~/Pictures
Uporablja se lahko tudi z globino 0 za primerjajte določene datoteke, ne da bi se spuščali v poddirektorijeTo je uporabno, če sumite, da sta dve datoteki enaki:
yadf --depth 0 file1 file2
Če želite iskanje omejiti na trenutni imenik, ne da bi se spustili navzdol, prilagodite globino:
yadf --depth 1
Ena od prednosti yadf-a je, da zelo dobro deluje z drugimi pripomočki, kot je fd. Na primer, lahko bi najprej filtrirajte imenike ali datoteke po imenu in nato seznam posredujte funkciji yadf:
- Poiščite imenike, ki vsebujejo črko "a", nato pa poiščite podvojene datoteke brez rekurzije:
fd --type d a | yadf --depth 1 - Poiščite datoteke, ki vsebujejo "a", in preverite morebitne dvojnike:
fd --type f a | yadf
Kar zadeva filtre, imate na voljo več zanimivih možnosti:
- Dvojniki velikosti vsaj 100 MB:
yadf --min 100M - Podvojeni dokumenti, manjši od 100 MB:
yadf --max 100M - Samo datoteke JPG:
yadf --pattern '*.jpg' - Datoteke, katerih ime se začne z "g":
yadf --regex '^g' - Datoteke z več kot 10 kopijami:
yadf --rfactor over:10 - Datoteke z manj kot 10 kopijami:
yadf --rfactor under:10 - Edinstvene datoteke (brez dvojnikov):
yadf --rfactor equal:1
Omogoča tudi formatu izhod za integracijo v druge skripte ali orodja. Glede na teste, ki jih je izvedel avtor sam, je yadf običajno nekoliko hitrejši od fclones v določenih scenarijihVendar je priporočljivo, da na svojem sistemu in z lastnimi podatki izvedete lastne primerjalne teste.
Grafična orodja za iskanje dvojnikov v Linuxu
Če terminal ni vaša stvar ali če imate opravka z ogromnimi zbirkami fotografij in si želite pred brisanjem ogledati sličice, je najlažji način uporaba ... aplikacije z grafičnim vmesnikomV ekosistemu Linuxa jih je več zelo zrelih.
FSlint: Vključen preprost vmesnik in različica CLI
FSlint je veteransko orodje za iskanje in čiščenje "vlaken" v datotečnem sistemu: dvojniki, prazni imeniki, začasne datotekeprekinjene simbolne povezave, zastarele binarne datoteke in drugi nepotrebni deli.
Nahaja se v repozitorijih mnogih distribucij. V Ubuntuju ga lahko na primer namestite iz centra za programsko opremo ali prek terminala z:
sudo apt-get install fslint
Ko odprete grafično aplikacijo, boste videli, da je plošča »Podvojitve« privzeto izbrana in vaša osebni imenik kot začetna iskalna potPreprosto kliknite »Išči«, da FSlint pregleda mapo in vam prikaže seznam podvojenih datotek.
Na tem seznamu lahko izberete, katere elemente želite izbrisati, združiti ali kako drugače obdelati. Z dvojnim klikom lahko predogled datoteke pred brisanjem, nekaj zelo uporabnega s fotografijami in pomembnimi dokumenti.
FSlint vključuje tudi konzolno komponento, ki pa ni zasnovana za neposreden klic kot binarna datoteka v PATH, temveč kot script na lastni poti:
/usr/share/fslint/fslint/fslint carpeta
Ta ukaz preprosto našteje dvojnike in vam prepusti nadaljnje dejanje (brisanje, premikanje itd.). Če si želite ogledati vse možnosti, si lahko vedno ogledate pomoč:
/usr/share/fslint/fslint/fslint --help
man fslint
dupeGuru: večplatformski, hiter in precej varen
dupeGuru je še ena znana grafična aplikacija za iskanje podvojenih datotek v Linuxu, Windows in macOSSkenira lahko tako po imenu kot po vsebini ter podpira algoritem mehkega ujemanja, ki zazna podobna imena, kar je idealno, če imate na tisoče pesmi ali fotografij s skoraj enakimi imeni.
Njegov vmesnik je precej jasen: izberete eno ali več map za skeniranje, izberete način (splošne datoteke, glasba ali slike) in pustite, da opravi svoje delo. Ko konča, vam prikaže rezultate. podvojene skupine, kjer se odločite, kaj boste obdržali in kaj boste izbrisali označevanje polj.
V Debianu, Ubuntuju in derivatih ga lahko namestite iz PPA, ki ga vzdržuje projekt:
sudo add-apt-repository ppa:dupeguru/ppa
sudo apt-get update
sudo apt-get install dupeguru
V Arch Linuxu je na voljo v repozitorijih distribucije:
sudo pacman -S dupeguru
Ena od velikih prednosti dupeGuruja je, da Zasnovan je tako, da zmanjša tveganje brisanja stvari, ki jih ne bi smeli.Vendar je kot vedno zadnji klik vaš. Zato je še vedno bistveno, da imate varnostne kopije in skrbno pregledate, kaj izberete.
Czkawka in Krokiet: sodoben motor z dvema različnima vmesnikoma
Czkawka je sodobna aplikacija, napisana v Rustu, ki najde in odstrani podvojene datoteke, prazne datoteke, začasne datoteke, ogromne datoteke in druge nepotrebne elemente.Je večplatformski in njegov glavni cilj je biti hiter in učinkovit.
V notranjosti uporablja isti motor kot Krokiet, še en grafični vmesnik, ki se odloča za lažjo in hitrejšo zasnovoCzkawka se zanaša na GTK in ponuja bolj popoln vmesnik, medtem ko Krokiet uporablja Slint in nekoliko poenostavi predstavitev, v zameno za manjšo porabo virov.
V obeh primerih je potek dela podoben tistemu, ki smo ga videli pri drugih grafičnih orodjih: izberete mape za skeniranje, zaženete iskanje podvojenih datotek in nato Delate z združenim seznamom, na katerem označite, kaj želite obdržati in kaj izbrisati.To je veliko bolj priročno kot si zapomniti možnosti konzole, če želite čistiti le občasno.
Če iščete nekaj aktivnega in z dokaj dinamičnim razvojem, je Czkawka ena najbolj priporočljivih možnosti; če imate raje lahkotnost, se Krokiet zelo dobro prilega skromnim računalnikom.
fclones-gui: preprost vmesnik za fclones
Za tiste, ki so že poskusili fclones, vendar se ne želijo ukvarjati z ukazno vrstico, obstaja fclones-gui, zelo preprost grafični vmesnik, ki izkorišča prednosti mehanizma fclonesNe prikazuje vseh naprednih možnosti, prikazuje pa najpogostejše.
Deluje preprosto: izberete imenik za analizo, prilagodite osnovne možnosti iskanja in kliknete gumb za najti dvojnikeKo končate, lahko izberete, katere datoteke želite obdelati in katero dejanje želite izvesti (brisanje, premikanje, povezovanje itd.).
Edina pomanjkljivost je, da se zdi, da je razvoj fclones-gui počasnejši od razvoja drugih grafičnih alternativ, kot sta Czkawka ali Krokiet, zato če vam je vzdrževanje zelo pomembno, boste morda raje izbrali slednjega. Kljub temu je fclones-gui, če ustreza vašim potrebam, povsem veljavna možnost.
"Ročno izdelane" rešitve z uporabo funkcij find, sort, uniq in md5sum
Če radi delate stvari ročno ali se ne želite zanašati na dodatno orodje, lahko tudi združuje klasične pripomočke Unix kot so find, md5sum, sort in uniq za iskanje podvojenih datotekOsnovna ideja je ustvariti zgoščeno vrednost za vsako datoteko, razvrstiti po tej zgoščeni vrednosti in nato ohraniti vnose, ki se ponavljajo.
Na primer, lahko iterirate skozi domači imenik, ustvarite kontrolne vsote MD5 za vsako datoteko in rezultate zapišete v datoteko:
find /home/usuario -type f -print0 \
| xargs -0 md5sum \
| sort > /tmp/archivos-duplicados.txt
Nato lahko z uporabo sort in uniq poiščete Zgoščene vrednosti, ki se pojavijo večkrat, označujejo skupine datotek z isto vsebino.Od tam naprej je treba le še obdelati seznam in se odločiti, kaj storiti z vsako potjo.
Ena zanimiva podrobnost je, da če naredite echo Iz zgoščene vrednosti MD5 boste opazili, da Zdi se, da ima 33 bajtov namesto 32To je zato, ker `echo` na koncu doda prelom vrstice, zato za resnično merjenje velikosti ne bi smeli uporabljati znaka za prelom vrstice (na primer z printf).
Ta "ročno izdelan" pristop ne ponuja udobja ali naprednih funkcij specializiranih orodij, je pa zelo uporaben za razumeti, koliko detektorjev dvojnikov deluje interno in ustvariti zelo specifične skripte, prilagojene vašim potrebam.
Priporočila za uporabo in najboljše prakse pri brisanju dvojnikov
Ne glede na izbrano orodje je vredno upoštevati številna pravila Izogibajte se šoku z brisanjem datotek, ki ste jih dejansko potrebovali:
- Najprej delajte na testne imenike ali kopije vaših podatkov dokler se z orodjem ne počutite udobno.
- Kadar koli obstaja, uporabite način poskusni zagon ali simulacija (fclones, rdfind itd.) pred izvedbo destruktivnih dejanj.
- Kadar je mogoče, se najprej odločite za premaknite podvojene datoteke v mapo v karanteni namesto da jih neposredno izbrišete.
- Izogibajte se avtomatskemu brisanju z možnostmi, kot so –brez poziva ali -N Če niste temeljito preverili, kako delujejo, so lahko zelo agresivni.
- Bodite previdni z simbolne povezave (-s, –symlinks)ker lahko povzročijo, da izbrišete datoteke zunaj drevesa imenikov, za katere ste mislili, da jih čistite.
- Vedno imejte a nedavna varnostna kopija preden izvedete obsežno čiščenje diskov, ki vsebujejo pomembne podatke.
Iskanje in brisanje podvojenih datotek v Linuxu ni zapleteno, če poznate prava orodja: od klasičnih orodij, kot so fdupes, rdfind in FSlint, do sodobnejših možnosti, kot so fclones, yadf, Czkawka, Krokiet ali dupeGuru, imate na voljo ogromen arzenal. sprostite prostor, organizirajte mape in zmanjšajte kaos podvojenih kopijIzberite konzolni ali grafični vmesnik, kar vam je bolj udobno, kombinirajte filtre velikosti in vzorce poimenovanja, da izboljšate rezultate, in predvsem si vzemite čas za pregled, kaj boste izbrisali; z malo previdnosti bo vaš sistem veliko lažje dihal, ne da bi bili vaši pomembni podatki nepotrebno ogroženi.
Strasten pisec o svetu bajtov in tehnologije nasploh. Rad delim svoje znanje s pisanjem in to je tisto, kar bom počel v tem blogu, saj vam bom pokazal vse najbolj zanimive stvari o pripomočkih, programski opremi, strojni opremi, tehnoloških trendih in še več. Moj cilj je, da vam pomagam krmariti po digitalnem svetu na preprost in zabaven način.