Tiedostohaku sisällön mukaan Linuxissa voi vähentää merkittävästi aikaa ja vaivaa, kun etsitään tiettyjä tietoja suurista ja monimutkaisista tiedostojärjestelmistä.
Tämä haku voi olla erityisen hyödyllinen, kun haluat etsiä tiedostoja, jotka sisältävät tietyn merkkijonon tai avainsanan, tai kun haluat löytää kaikki tiedostot, jotka vastaavat tiettyä mallia tai kriteeriä.
Tiedostojen etsimistä sisällön perusteella voidaan käyttää erilaisiin tehtäviin, kuten etsimiseen:
Tiedostojen etsimisen sisällön mukaan yleisenä tarkoituksena on helpottaa tiedostojärjestelmän kanssa työskentelyä ja etsiä tiedostojärjestelmästä tarvitsemasi tiedot.
Aloitetaan ack-apuohjelmasta. Se luotiin vuonna 2005 vaihtoehdoksi grep:lle, ja siitä tuli nopeasti suosittu kehittäjien keskuudessa.
Sillä on useita etuja grep:iin
verrattuna, muun muassa seuraavat:
grep
. Tämä tarkoittaa, että voit helposti löytää järjestelmässäsi piilossa olevat tiedostot.Esimerkkejä ack:n käytöstä:
- Etsi nykyisestä kansiosta ja sen alikansioista kaikki tiedostot, jotka sisältävät sanan
"test": ack "test"
- Sama asia, mutta jätetään pois tiedostot, joilla on
.bak-pääte: ack "test" --ignore-file=match:/.bak$/
- Etsitään nykyisestä kansiosta kaikki tiedostot, jotka sisältävät merkkijonon "hello", ja tulostetaan jokaisen tiedoston kaksi ensimmäistä riviä:
ack "hello" --heading --max-count=2
Toinen mielenkiintoinen työkalu on ripgrep. Se on monin tavoin samanlainen kuin ack, mutta käyttää nopeampaa hakualgoritmia, mikä tekee siitä erityisen hyödyllisen suurissa projekteissa.
Tässä on muutamia esimerkkejä:
"test": rg "test".
.bak-pääte: rg "test" --glob "!*.bak"
rg "hello" --heading --max-columns=2
Lopuksi on syytä mainita fzf. Se ei ole pelkkä merkkijonojen etsijä kuten ack ja ripgrep. Fzf:ää käytetään apuohjelmana tiedostojen, kansioiden ja listan kohteiden etsimiseen. Muuten se toimii samalla tavalla kuin ack/ripgrep, mutta sillä on lisäksi mahdollisuus suodattaa tuloksia. Tässä on muutamia esimerkkejä:
- Etsi F-kirjaimella alkavia tiedostoja tietokoneesta:
locate F | fzf -m
- Poistu nykyisestä kansiosta ja siirry haluamaasi hakemistoon:
cd **<TAB> | fzf
- Valitse SVN-versio ja kopioi numero leikepöydälle:
svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy
Toivottavasti nämä työkalut auttavat sinua löytämään tarvitsemasi tiedostot ja merkkijonot nopeasti ja tehokkaasti. Minkä tahansa valitsetkin, ne kaikki tarjoavat kehittyneitä hakuja, jotka voivat nopeuttaa työtäsi huomattavasti.