Tuesday, March 10, 2009

Failu meklēšana izmantojot find, grep un locate

1) Lai atrastu failu ar nosaukumu hello.c, izmantojam šādu komandu:
locate hello.c

Pirms tam gan jābūt ir jābūt atjaunotai db, tam mēs izmantojam komandu:
updatedb

2) Drošības nolūkos neiesaka izmantot updatedb ar root privilēģijām, tādēļ mēs varam arī izmantot find komandu. Jāpiezīmē, ka arī šī komanda ir gana vienkārša. Dotajā piemērā mēs meklējam failiņu, par kuru droši ir zināms tā nosaukums un direktorija (kuras apakšdirektorijās arī var būt meklējamais fails):
find /etc -name smb.conf

Ja nav zināma faila atrašanās aptuvenā direktorija, tad varam izlīdzēties ar šādu komandiņu:
find / -name smb.conf

Šī komanda gan aizņems vairāk laika, jo meklēšana ies cauri visai failu sistēmai.

Meklēšana neatšķir burtu reģistru. Ja vēlamies meklēt failus ar burtu reģistru, tad ismantojam -iname:
find /etc -iname smb.conf

Varam arī spedificēt failu tipu , lai paātrinātu meklēšanas laiku. Izmantojam -d priekš direktorijām, un l priekš simlinkiem (symlinks):
find /etc -type d -name samba

3) Dažreiz mēs meklējam nevis failu kā tādu, bet failu, kurš satur kādu informāciju. Te nu palīgos nāks grep komanda. Teiksim, ka mēs meklēsim failu, kurš satur atslēgvārdu "PermitRoot", un par failu ir zināms vien tas, ka tas atrodas kaut kur /etc direktorijā. Komanda:
grep -r "PermitRoot" /etc

-r nozīmē ka mēs rekursīvi skanējam failus arīdzan pa apakšdirektorijām (ja tādas eksistē).

Pēc noklusējuma, grep ir reģistrjūtīgs. Lai to noņemtu, izmantojam -i:
grep -ri "permitroot" /etc

Te gan ir jāņem vērā tas, ka noņemot reģistrjūtīgumu, mēs būtiski palielinam meklēšanas laiku....

No comments: