Kuinka etsiä pakattuja tiedostoja Linuxilla

Tässä oppaassa näytetään, kuinka etsiä pakattuja tiedostoja tekstiryhmälle tai tietylle lausekkeelle.

Miten hakea ja suodattaa tulokset käyttämällä Grep-komentoa

Yksi tehokkaimmista Linux-komennoista on grep, joka tarkoittaa "Global Regular Expressions Print".

Voit käyttää grep-ohjelmaa haun etsimiseen tiedoston sisällön tai toisen komennon tuotosta.

Esimerkkinä, jos suoritat seuraavan ps-komennon , näet luettelon tietokoneesi käynnissä olevista prosesseista.

ps -ef

Tulokset siirtyvät nopeasti näyttöön ja jos yleensä on paljon tuloksia. Tämä tekee tietojen tarkastelemisesta erityisen kivuliaita.

Voit tietysti käyttää useampaa komentoa listalla yhden tuloksellisen sivun kerrallaan seuraavasti:

ps -ef | lisää

Vaikka yllä olevan komennon tuotos on parempi kuin edellinen, sinun on silti vältettävä tuloksia löytääksesi mitä etsit.

Grep-komento mahdollistaa tulosten suodattamisen sen perusteella lähetettävillä kriteereillä. Esimerkiksi etsiä kaikki prosessit UID-asetuksella "root" suorita seuraava komento:

ps -ef | grep root

Grep-komento toimii myös tiedostoilla. Kuvittele, että sinulla on tiedosto, joka sisältää luettelon kirjan otsikoista. Kuvittele, että haluat nähdä, sisältääkö tiedostossa "Punahilkka". Voit etsiä tiedostoa seuraavasti:

grep "Punahilkka" -kirjaluettelo

Grep-komento on erittäin voimakas ja tässä artikkelissa näytetään useimmat hyödylliset kytkimet, joita voidaan käyttää sen kanssa.

Miten etsi pakattuja tiedostoja käyttämällä zgrep-komentoa

Vähän tunnettu, mutta erittäin tehokas työkalu on zgrep. Zgrep-komennolla voit hakea pakatun tiedoston sisältöä ottamatta ensin sisältöä.

Zgrep-komentoa voidaan käyttää zip-tiedostoja tai tiedostoja, jotka on pakattu gzip-komennolla .

Mikä on ero?

Zip-tiedosto voi sisältää useita tiedostoja, kun taas gzip-komennolla pakattu tiedosto sisältää vain alkuperäisen tiedoston.

Jos haluat etsiä tekstiä gzipillä pakatulla tiedostolla, voit kirjoittaa seuraavan komennon:

zgrep expression filetosearch

Kuvittele esimerkiksi, että kirjojen luettelo on pakattu gzipilla. Voit etsiä pakattuna tiedostona tekstiä "pieni punainen ratsastushousu" seuraavalla komennolla:

zgrep "Punahilkka" bookslist.gz

Voit käyttää mitä tahansa lauseketta ja kaikkia grep-komennon kautta käytettävissä olevia asetuksia osana zgrep-komentoa.

Miten hakea pakattuja tiedostoja käyttäen zipgrep-komentoa

Zgrep-komento toimii hyvin gzipillä pakatulla tiedolla, mutta ei toimi niin hyvin zip-apuohjelmalla pakattujen tiedostojen kanssa.

Voit käyttää zgrepia, jos zip-tiedosto sisältää yhden tiedoston, mutta useimmissa zip-tiedostoissa on useampi kuin yksi tiedosto.

Zipgrep-komennolla etsitään kuvioita zip-tiedostossa.

Esimerkkinä kuvitella, että sinulla on tiedosto nimeltä kirjat, joilla on seuraavat otsikot:

Kuvittele myös, että sinulla on tiedosto, jota kutsutaan elokuviksi seuraavilla nimillä

Kuvittele, että nämä kaksi tiedostoa on pakattu zip-muodossa tiedostoksi media.zip.

Voit käyttää zipgrep-komentoa etsiä kuvioita kaikissa zip-tiedoston tiedostoissa. Esimerkiksi:

zipgrep kuvion tiedostonimi

Kuvittele esimerkiksi, että halusit löytää kaikki Harry Potterin tapahtumat. Käytä seuraavaa komentoa:

zipgrep "Harry Potter" media.zip

Tuotos on seuraava:

kirjoja: Harry Potter ja salaisuuksien kammio

kirjat: Harry Potter ja Phoenixin tilaus

elokuvat: Harry Potter ja salaisuuksien kammio

elokuvat: Harry Potter ja tulinen pikari

Koska voit käyttää mitä tahansa lausetta, jolla on zipgrep, jota voit käyttää grep-työkalun kanssa, tekee työkalusta erittäin voimakas ja tekee hakemisesta zip-tiedostoja paljon yksinkertaisempaa kuin purkaminen, etsiminen ja pakkaaminen uudelleen.

Jos haluat vain etsiä tiettyjä tiedostoja zip-tiedostossa, voit määrittää zip-tiedostossa olevat tiedostot osana komentoa seuraavasti:

zipgrep "Harry Potter" media.zip elokuvia

Lähtö on nyt seuraava

elokuvat: Harry Potter ja salaisuuksien kammio

elokuvat: Harry Potter ja tulinen pikari

Jos haluat hakea kaikkia tiedostoja lukuun ottamatta, voit käyttää seuraavaa komentoa:

zipgrep "Harry Potter" media.zip -x kirjoja

Tämä tuottaa saman lähdön kuin aiemmin, sillä se etsii kaikkia media.zip-tiedostoja lukuun ottamatta kirjoja.