Tapoja käyttää 'find'-komentoa hakemistojen etsimiseen tehokkaammin


Tämä opetusohjelma opastaa sinut eri tavoilla löytää hakemisto Linuxissa. Kuten ehkä jo tiedät, Linuxissa kaikki on tiedostoja, mukaan lukien hakemistot. Ja yksi yleisimmistä asioista, joita Linux-käyttäjä tekee komentorivillä, on tiedoston tai hakemiston etsiminen.

Tiedostojen etsimiseen komentoriviltä käytetään useita erilaisia keinoja ja apuohjelmia, kuten etsi, paikanna ja mikä. Viimeistä apuohjelmaa (joka) käytetään kuitenkin vain komennon paikantamiseen.

Tässä opetusohjelmassa keskitymme pääasiassa Find-apuohjelmaan, joka etsii tiedostoja live-Linux-tiedostojärjestelmästä ja on tehokkaampi ja luotettavampi kuin locate.

locate-toiminnon haittapuoli on, että se lukee yhtä tai useampaa updatedb:n luomaa tietokantaa. Se ei tee hakuja elävän tiedostojärjestelmän kautta. Lisäksi se ei tarjoa yhtä hyvin joustavuutta sen suhteen, mistä etsiä (lähtökohta).

Alla on syntaksi locate-komennon suorittamiselle:

locate [option] [search-pattern]

Osoittaaksemme locate-toiminnon haitan oletetaan, että etsimme hakemistoa nimeltä pkg nykyisestä työhakemistosta.

Huomaa: alla olevassa komennossa vaihtoehto --basename tai -b kertoo locate< vastaamaan vain tiedoston (hakemiston) perusnimeä (joka on täsmälleen pkg), mutta ei polkua (/polku/pkg). Kun \ on ympyrämerkki, se poistaa käytöstä pkg:n implisiittisen korvauksen *pkg*:lla.

locate --basename '\pkg'

Kuten yllä olevasta komennon lähdöstä näkyy, locate etsii alkaen (/)-juurihakemistosta, minkä vuoksi muut samannimiset hakemistot yhdistetään.

Siksi voit ratkaista tämän ongelman käyttämällä etsi-toimintoa noudattamalla alla olevaa yksinkertaistettua syntaksia:

find starting-point options [expression]

Katsotaanpa muutamia esimerkkejä.

Jos haluat etsiä samaa hakemistoa (pkg) yllä olevasta nykyisestä työhakemistosta, suorita seuraava komento, jossa -name-lippu lukee lausekkeen, joka tässä tapauksessa on hakemiston perusnimi.

find . -name "pkg"

Jos kohtaat Permission denied -virheitä, käytä sudo-komentoa seuraavasti:

sudo find . -name "pkg"

Voit estää Findia etsimästä muita tiedostotyyppejä paitsi hakemistoja käyttämällä -type-lippua määrittääksesi tiedostotyypin (alla olevassa komennossa d tarkoittaa hakemistoa) seuraavasti:

sudo find . -type d -name "pkg"

Lisäksi, jos haluat listata hakemiston pitkässä luettelomuodossa, käytä toimintokytkintä -ls:

sudo find . -type d -name "pkg" -ls

Seuraavaksi vaihtoehto -iname ottaa käyttöön haun, jossa kirjainkokoa ei erotella:

sudo find . -type d -iname "pkg" 
sudo find . -type d -iname "PKG" 

Löydät lisää mielenkiintoisia ja edistyneitä käyttötietoja lukemalla etsi- ja locate-manuaalisivut.

man find
man locate

Viimeisenä huomautuksena, Find-komento on luotettavampi ja tehokkaampi tiedostojen (tai hakemistojen) etsimiseen Linux-järjestelmässä, kun sitä verrataan locate-komentoon.

Samalla tavalla kuin ennenkin, älä unohda lähettää meille palautetta tai kysymyksiä alla olevan kommenttiosion kautta. Lopuksi, pysy aina yhteydessä Tecmintiin.