Komanda rasti padeda mums rasti tam tikrą failą kataloge. Jis naudojamas įvairių sąlygų, pvz., leidimo, vartotojo nuosavybės, modifikavimo, datos / laiko, dydžio ir kt., failų sąrašui rasti.
„Unix“ tipo ir kitose operacinėse sistemose komanda rasti yra komandų eilutės programa, kuri suranda failus pagal kelis vartotojo nurodytus formatus ir išspausdina visus atitikusio objekto kelio pavadinimus arba, jei reikia atlikti kitus veiksmus, įgyvendina tą veiksmą visi atitikę objektai.
Jis pradeda paiešką nuo norimos pradžios vietos ir po to rekursyviai kerta hierarchinės struktūros (paprastai medžio) katalogus (mazgus). Komanda rasti gali ieškoti ir naršyti iš skirtingų failų skaidinių sistemų, priklausančių vienam ar daugiau saugojimo įrenginių pradiniame kataloge.
Paieškos formate yra šablonas, skirtas suderinti su failo pavadinimu arba laiko intervalas, skirtas suderinti su modifikavimo laiku arba failo prieigos laiku. Pagal numatytuosius nustatymus komanda rasti pateikia visų failų, esančių dabartiniame darbiniame kataloge, sąrašą. Tačiau vartotojai gali apriboti paiešką iki pageidaujamo didžiausio lygio pradiniame kataloge.
Susietos vietos nustatymo programos taiko indeksuotų failų duomenų bazę, gautą iš baudos komandos, kad būtų galima greičiau ieškoti visos failų sistemos pagal pavadinimą.
Pagal numatytuosius nustatymus paieškos įrankis pateikiamas su dauguma Linux distribucijos , todėl mums nereikia diegti jokio papildomo paketo. Tai viena iš būtiniausių ir naudojamų komandų Linux sistema.
find
Abi parinktys nustato, kaip ieškant turėtų būti atsižvelgiama į simbolines nuorodas. Numatytoji prigimtis niekada nesiekti simbolinių ryšių. Vėliava, t.y. -L , paskatins rasti siekti simbolinių nuorodų. Vėliava, t.y. -H , tik sieks simbolinių nuorodų, tęsdama komandinės eilutės argumentus. Vėliavos yra paminėtos POSIX standarte, skirtoje rasti komandai. Pagrindinis plėtinys yra vėliavėlė, t.y. -P , kad aiškiai išjungtumėte toliau pateiktą simbolinę nuorodą.
Bent jau kelias turi numatyti išraišką. Komanda rasti gali iš vidaus interpretuoti pakaitos simbolius, o komandos turi būti atidžiai cituojamos, kad būtų galima valdyti apvalkalo globą.
Išraiškos komponentai yra atskirti komandinės eilutės argumento riba, paprastai nurodoma kaip tarpas apvalkalo sintaksėje. Jie svarstomi iš kairės į dešinę. Jie gali apimti loginius komponentus, tokius kaip OR ir AND, taip pat predikatus (veiksmus ir filtrus). GNU atradimas turi keletą kitų funkcijų, kurių POSIX nepaminėjo.
Katalogui nurodyti naudojami šie simboliai:
(.) : dabartiniam katalogo pavadinimui
(/) : šakniniam katalogui
Trumpa komandos „Find“ istorija
Komanda rasti buvo pateikta Unix 5 versijoje kaip elementas Programuotojo darbo stalas projektą ir nurodė Dikas Haightas su cpio, kurie buvo sukurti naudoti kartu.
Iš pradžių paieškos komandos GNU įgyvendinimą nurodė Erikas Deckeris . Vėliau jį sukūrė Davidas MacKenzie, Timas Woodas , ir Džejus Plettas . Be to, komanda rasti buvo perkelta į IBM i OS.
jei kitaip, jei java
Predikatai
Plačiai naudojami pirminiai:
Raskite numatytuosius diegimo -print nustatymus, jei sąlygos yra teisingos, jei išraiška nenaudoja nė vieno iš -ok, -exec, -print arba -print0.
Operatoriai
Operatoriai pagerina paieškos komandų išraiškas. Jie minimi mažėjančia tvarka:
- expr1 expr2 (arba expr1 -a expr2 : AND. expr2 neįvertinamas, jei expr1 yra klaidingas.
- expr1 -o expr2 : ARBA. expr2 neįvertinamas, jei expr1 yra teisingas.
Rasti komandos pavyzdžiai
Pažiūrėkime šiuos paieškos komandos pavyzdžius:
- Raskite failus pagal pavadinimą
- Raskite failus pagal tipą
- Raskite naujesnius failus
- Raskite ir ištrinkite failą
- Raskite katalogą
- Raskite failus pagal modifikavimo laiką
- Raskite failus pagal leidimą
- Raskite ir pakeiskite failus
- Raskite tekstą keliuose failuose
Raskite failus pagal pavadinimą
Galime ieškoti visų failų, kurie baigiasi plėtiniu „.txt“. Norėdami tai padaryti, vykdykite žemiau esančią komandą:
find . -name '*.txt'
Aukščiau pateikta komanda išvardys visus tekstinius failus iš dabartinio darbo katalogo. Apsvarstykite toliau pateiktą išvestį:
Iš aukščiau pateiktos išvesties visi failai su plėtiniu '.txt' pateikiami su komanda rasti.
Failų paieška pagal tipą
Parametras „-type“ naudojamas failo tipui nurodyti.
Kai kurie failų tipai yra tokie:
- f: įprastas failas
- d: katalogas
- l: simbolinės nuorodos
- c: simbolių įrenginiai
- b: blokuoti įrenginius
Apsvarstykite toliau pateiktą komandą:
find . -type d -name '*.bak'
Aukščiau pateiktoje komandoje bus išvardyti visi katalogai su plėtiniu '.bak'. Apsvarstykite toliau pateiktą išvestį:
Iš aukščiau pateiktos išvesties komanda „rasti . -type d -name '*.bak' rodo visus katalogus, kurie baigiasi '.bak'.
vienvietis dizainas
Raskite naujesnius failus
Parametras „-naujesnis“ padeda ieškoti failų, kurie yra naujesni nei minėtasis failas. Apsvarstykite toliau pateiktą komandą:
find . -newer msg.txt
Aukščiau pateikta komanda parodys visus failus, kurie yra naujesni nei 'msg.txt' iš dabartinio darbo katalogo. Apsvarstykite toliau pateiktą išvestį:
Iš anksčiau pateiktos išvesties visi rodomi failai yra naujesni nei failas „msg.txt“.
Raskite ir ištrinkite failą
Parinktis „-delete“ naudojama konkrečiam failui ištrinti. Naudodami šią komandą turime būti labai atsargūs, nes kartą įvykdžius anuliavimo parinkties nėra. Apsvarstykite toliau pateiktą komandą:
find . -name Demo.txt -delete
Aukščiau pateikta komanda ištrins failą „Demo.txt“ iš dabartinio darbo katalogo. Apsvarstykite toliau pateiktą išvestį:
Raskite katalogą
Parinktis „type -d“ naudojama katalogui rasti. Apsvarstykite toliau pateiktą komandą:
find . type -depth -name Newdirectory
Aukščiau pateikta komanda ras vietą „Naujas katalogas“. Apsvarstykite toliau pateiktą išvestį:
Raskite failus pagal modifikavimo laiką
Parinktis „-mtime“, po kurios nurodomas dienų skaičius, naudojama failams rasti modifikuojant. Dienų skaičius gali būti teigiamas arba neigiamas. Neigiama reikšmė bus naudojama mažiau nei kaip -1 naudojama paskutinę dieną, ir panašiai +1 suras failą prieš daugiau nei vieną dieną. Apsvarstykite toliau pateiktą komandą:
find ./Newdirectory -mtime -1
Aukščiau pateikta komanda suras failus, kurie buvo modifikuoti per paskutinę dieną. Apsvarstykite toliau pateiktą išvestį:
Raskite failus pagal leidimą
Parinktis „-perm“ naudojama failams rasti pagal leidimą. Vykdykite paieškos komandą naudodami parinktį „-perm“ ir perduokite reikiamą reikšmę. Apsvarstykite toliau pateiktą komandą:
find ./ -perm 777
Pirmiau pateiktoje komandoje bus išvardyti failai iš nurodyto katalogo, kuriuos visi galėtų skaityti, rašyti ir vykdyti.
Raskite ir pakeiskite failus
Norėdami rasti ir pakeisti failus, turime derinti komandą find su komanda sed. Norėdami dirbti su failais, naudokite parinktį „-exec“ su komanda rasti. Apsvarstykite toliau pateiktą komandą:
find ./Newdirectory -type f -exec sed -i 's/find/replace/g' {} ;
iš aukščiau pateiktos komandos nurodytas įvykis bus pakeistas. Apsvarstykite toliau pateiktą išvestį:
tinklo topologija
Raskite tekstą keliuose failuose
Norėdami rasti tekstą iš įvairių failų, galime sukurti kitą paieškos komandos derinį su grep komanda. Apsvarstykite toliau pateiktą komandą:
find ./Newdirectory -type f -name '*.txt' -exec grep 'demo' {} ;
Aukščiau pateikta komanda suras eilutes, kuriose yra tekstas „demo“ iš visų tekstinių failų, esančių kataloge „Newdirectory“. Apsvarstykite toliau pateiktą išvestį:
Iš aukščiau pateiktos išvesties matome eilutes, kuriose buvo rodomas tekstas „demo“.
Ieškokite kiekviename kataloge
$ find / -name file1 -type f -print
Aukščiau pateikta komanda suranda visus įprasto failo, kurio pavadinimas yra failas1, katalogus ir išspausdina jį ekrane. Paprastai tokiu būdu ieškoti failų nėra gera idėja. Tai gali užtrukti nemažai laiko. Taigi, geriausia paminėti katalogą. Kai kurios operacinės sistemos gali prijungti failų sistemas (dinamines), kurios nėra palankios komandai rasti. Sudėtingesnius failų pavadinimus, kuriuose yra unikalių apvalkalo simbolių, gali tekti uždaryti vienose kabutėse.