Failų paieška Linux sistemoje gali būti sudėtinga užduotis, ypač kai tenka dirbti su dideliais katalogais ir sudėtinga failų struktūra. Tradicinė find komanda, nors ir labai galinga, gali veikti lėtai, kai ieškoma didelėse failų sistemose.
Būtent čia praverčia locate komanda, kuri leidžia failus rasti gerokai greičiau ir efektyviau, beveik akimirksniu. Kadangi ji remiasi iš anksto sukurta duomenų baze, locate nereikia vykdyti paieškos realiuoju laiku, todėl tai puikus įrankis tiems, kuriems dažnai reikia greitai surasti failus. Nesvarbu, ar esate pradedantysis, ar patyręs Linux naudotojas, locate komandos įvaldymas gali pastebimai padidinti jūsų produktyvumą ir darbo efektyvumą.
0. Kas yra locate komanda?
locate yra Linux sistemos įrankis, padedantis rasti failus ieškant jų duomenų bazėje, o ne skenuojant visą failų sistemą. Dėl to ji veikia gerokai greičiau nei find komanda, kuri katalogus tikrina realiuoju laiku.
locate duomenų bazė periodiškai atnaujinama naudojant updatedb komandą, todėl paieška išlieka greita ir pakankamai aktuali.
Pagal numatytuosius nustatymus Linux sistemoje locate komanda dažniausiai nebūna įdiegta iš anksto. Norėdami ją įdiegti, paleiskite šias komandas vieną po kitos:
sudo apt-get update
sudo apt-get install mlocate
Norėdami naudoti locate, tiesiog įveskite locate filename, ir sistema pateiks visų atitinkančių failų kelių sąrašą. Nors locate veikia greitai, ji ne visada atspindi pačius naujausius failų sistemos pakeitimus, todėl, priklausomai nuo situacijos, gali būti naudinga naudoti ir kitas alternatyvas, tokias kaip find, fd ar ripgrep.
find komanda: find ieško kataloguose realiuoju laiku, todėl pateikia tiksliausius rezultatus, tačiau veikia lėčiau.
fd komanda: tai patogesnė find alternatyva, siūlanti spalvomis išskirtą išvestį, išmanesnius paieškos nustatymus pagal nutylėjimą ir geresnį našumą.
ripgrep (rg): nors tai daugiausia tekstinės paieškos įrankis, jį taip pat galima efektyviai naudoti failų keliams rasti, todėl tam tikrais atvejais jis tampa labai naudinga alternatyva.
1. find komandos sintaksė
find [directory] -name "filename"
Štai paprastas pavyzdys, kaip rasti konkretų dokumento failą:
find /home -name "document.txt"
Ši komanda ieško document.txt failo /home kataloge.
find paieška pagal tipą:
d – katalogas arba aplankas
f – įprastas failas
l – simbolinė nuoroda
c – simbolinis įrenginys
b – blokinis įrenginys
find paieška pagal laiką:
Prieigos laikas (-atime) – kada failas buvo perskaitytas arba į jį buvo rašoma.
Modifikavimo laikas (-mtime) – kada failo turinys buvo pakeistas.
Pakeitimo laikas (-ctime) – kada buvo atnaujinti failo metaduomenys.
find paieška pagal dydį:
c – baitai
k – kilobaitai
M – megabaitai
G – gigabaitai
b – 512 baitų blokai
Paprastas find naudojimo su failo dydžiu pavyzdys:
find . -size 5M
2. fd komandos sintaksė
fd "filename" [directory]
Kaip ir anksčiau, štai pavyzdys, kaip rasti vieną konkretų failą:
fd "document.txt" /home
Ši komanda ieško document.txt failo /home kataloge naudodama fd.
Naudojimas su -e, filtruojant pagal failo plėtinį:
fd -e txt -e md "notes"
Ši komanda randa .txt arba .md plėtinį turinčius failus, kurie atitinka "notes".
Nepageidaujamų katalogų atmetimas naudojant --exclude:
fd "cache" --exclude node_modules
Ši komanda ignoruoja node_modules, kad paieška vyktų greičiau.
Paslėptų failų įtraukimas naudojant --hidden:
fd --hidden "config"
3. ripgrep (rg) komandos sintaksė
rg --files | grep "filename"
rg --files | grep "document.txt"
Ši komanda efektyviai suranda document.txt tarp failų, kuriuos pateikia ripgrep.
--files naudojimas failų paieškai vietoje teksto turinio paieškos:
rg --files | grep "report.txt"
4. locate komandos sintaksė ir pavyzdžiai
locate [filename]
Pabandykime failų paiešką keliais pavyzdžiais:
locate document.txt – randa visus document.txt egzempliorius
locate -i picture.jpg – ieško picture.jpg, nepaisydama raidžių didumo
locate '*.mp3' – randa visus MP3 failus. "*" prieš plėtinį reiškia, kad bus ieškoma visų failų, kurių pavadinimas baigiasi .mp3 plėtiniu.
SVARBU: prieš paiešką atnaujinkite duomenų bazę, kad gautumėte naujausius rezultatus
sudo updatedb
grep derinimas tikslesniam filtravimui:
locate "config" | grep "apache"
Naudingi patarimai
/ pasvirasis brūkšnys – ieškoti visoje sistemoje
. taškas – ieškoti nuo katalogo, kuriame šiuo metu dirbate
~ tildė – ieškoti nuo jūsų namų katalogo
Išvada
locate komanda yra galingas ir efektyvus įrankis, leidžiantis greitai rasti failus Linux sistemoje. Nors ji išsiskiria greičiu, geriausių rezultatų pasieksite naudodami ją kartu su kitais įrankiais, tokiais kaip find, fd ir ripgrep, kai reikia išsamesnės paieškos. Kiekvienas iš šių įrankių turi savų privalumų, todėl supratimas, kada kurį naudoti, gali gerokai pagerinti jūsų darbo efektyvumą tvarkant failus. Derindami šias komandas su gera praktika, galite optimizuoti paieškos procesą ir sutaupyti vertingo laiko.
