Huomautus: Jos haluat käyttää etsintää, aloita avaamalla pääteistunto päästäksesi komentoriviin.
Etsien perusominaisuudet
Etsiminen ilman vaihtoehtoja tuottaa luettelon kaikista tiedostoista ja hakemistosta työhakemistossa ja sen alla. Jos esimerkiksi työhakemistosi on / home / hope / Documents, käynnissä oleva haku tuottaa seuraavan:
- Jokainen tiedosto / home / hope / Documents .
- Jokainen alihakemisto / home / hope / Documents .
- Jokainen tiedosto jokaisessa näistä alihakemistoista.
Katsotaanpa sitä toiminnassa. Tarkistetaan ensin työhakemisto käyttämällä pwd-komentoa:
pwd
/ Home / toivoa / Dokumentit
Suorita nyt etsiminen ilman vaihtoehtoja:
löytö
. ./images ./images/hp ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG. /images/memes/picard.jpg ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at-hagreds.doc ./ hp-fanfic / dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
Tässä esimerkissä näemme yhteensä kymmenen tiedostoa ja neljä alihakemistoa Asiakirjat- kansiossa ja sen alla.
Huomaa, että lähtö alkaa yhdestä pisteestä, joka edustaa työhakemistoa. Haun löytäminen ilman vaihtoehtoja on sama kuin sen määrittäminen, että haun pitäisi alkaa työhakemistossa, kuten tämä:
löytö .
Yllä oleva esimerkki on "oikea" tapa löytää etsintä . Jos yrität käyttää sitä toisessa UNIX-tyyppisessä käyttöjärjestelmässä, kuten FreeBSD: ssä, huomaat, että hakemiston määrittäminen on välttämätöntä, joten on hyvä käyttää tätä komentomuotoa.
Määritä, mistä etsiä
Jos haluat luetella vain hakemistoon / home / hope / Documents / images sisältyvät tiedostot ja alihakemistot, määritä se komennon ensimmäiseksi argumentiksi:
Etsi / home / hope / Asiakirjat / kuvat
/ home / hope / Asiakirjat / kuvat / home / hope / Asiakirjat / kuvat / hp /home/hope/Documents/images/hp/snape.jpg /home/hope/Documents/images/hp/harry.jpg / home / hope / Documents / images / memes /home/hope/Documents/images/memes/winteriscoming.jpg /home/hope/Documents/images/memes/goodguygary.JPG /home/hope/Documents/images/memes/picard.jpg
Huomaa, että koko polku näkyy myös tuloksissa.
Jos työhakemistomme on / home / hope / Documents, voimme käyttää seuraavaa komentoa, joka löytää samat tiedostot:
löytää ./images
Mutta tällä kertaa tulos heijastaa haun aloituspaikkaa ja näyttää näin:
./images ./images/hp ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG. /images/memes/picard.jpg
Oletusarvon mukaan haku etsii jokaisen aloituspaikan alikansion. Jos haluat rajoittaa haettavien alihakemistojen määrää, voit käyttää -maxdepth- vaihtoehtoa numerolla.
Esimerkiksi -maxdepth 1: n määrittäminen etsii vain hakemistossa, jossa haku alkaa. Jos alihakemistoja löytyy, ne luetellaan, mutta niitä ei haeta.
löytö . -maxdepth 1
. ./images ./bigfiles.txt ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./archlinux-2016.02.01-dual.iso
-Maxdepth 2: n määrittäminen etsii hakemistosta ja yhdestä alihakemistosta syvälle:
löytö . -maxdepth 2
. ./images ./images/hp ./images/memes ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at- hagreds.doc ./hp-fanfic/dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
-Maxdepth 3: n määrittäminen etsii yhden tason syvemmälle kuin:
löytö . -maxdepth 3
. ./images ./images/hp ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG. /images/memes/picard.jpg ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at-hagreds.doc ./ hp-fanfic / dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
Etsi nimen mukaan
Jos haluat rajoittaa hakutuloksesi vastaamaan vain tiedostoja ja hakemistoja, joilla on tietty nimi, käytä -name- vaihtoehtoa ja aseta nimi lainausmerkkeihin:
löytö . -nimi "picard.jpg"
./images/memes/picard.jpg
Voit myös käyttää merkkejä osana tiedostonimeä. Jos haluat esimerkiksi etsiä kaikki tiedostot, joiden nimi päättyy .jpg: ään, voit käyttää tähtiä edustamaan loput tiedostonimestä. Kun suoritat komennon, kuori globalisoi tiedostonimen mihin tahansa, joka vastaa kuviota:
löytö . -nimi "* .jpg"
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/picard.jpg
Huomaa, että komento ei ole listannut tiedostoa, jonka laajennus ( JPG ) on suurilla kirjaimilla. Tämä johtuu siitä, että toisin kuin muut käyttöjärjestelmät, kuten Microsoft Windows, Linux-tiedostonimet ovat kirjainkohtaisia.
Jos haluat suorittaa asiaankuulumattoman haun, käytä -iname- vaihtoehtoa:
löytö . -iname "* .jpg"
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg
Etsi vain tiedostoja tai vain hakemistoja
Määritä vain tiedostot ja jätä hakemistonimet pois tuloksista, määritä -tyyppi f :
löytö . -tyyppinen f
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg ./gimp-2.8 .16.tar.bz2 ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at-hagreds.doc ./hp-fanfic/dumbledores-lament.doc ./archlinux-2016.02.01-dual .iso
Jos haluat luetella vain hakemistoja ja jättää tiedostonimet pois, määritä -tyyppinen d :
löytö . -tyyppinen d
. ./images ./images/hp ./images/memes ./hp-fanfic
Tiedostojen etsiminen koon mukaan
Jos haluat näyttää vain tietyn kokoisia tiedostoja, voit käyttää -size- vaihtoehtoa. Määritä koko käyttämällä plus- tai miinusmerkkiä ("enemmän kuin" tai "vähemmän kuin"), numeroa ja kvantitatiivista päätettä, kuten k, M tai G.
Jos haluat esimerkiksi etsiä tiedostoja, jotka ovat "suurempia kuin 50 kilotavua", käytä -size + 50k :
löytö . -koko + 50k
./images/memes/winteriscoming.jpg ./gimp-2.8.16.tar.bz2 ./archlinux-2016.02.01-dual.iso
Käytä tiedostoja "suurempi kuin 10 megatavua" käyttämällä -size + 10M :
löytö . -koko + 10M
./gimp-2.8.16.tar.bz2 ./archlinux-2016.02.01-dual.iso
Käytä "isompi kuin 1 gigatavu", käytä -size + 1G :
löytö . -koko + 1G
./archlinux-2016.02.01-dual.iso
Käytä tietyn kokoisia tiedostoja kahdella koolla. Jos haluat esimerkiksi löytää tiedostoja "suurempi kuin 10 megatavua, mutta pienempi kuin 1 gigatavu", määritä -size + 10M -size -1G :
löytö . -koko + 10M-koko -1G
./gimp-2.8.16.tar.bz2
Tiedostojen etsiminen muutosten, käyttöoikeuksien tai tilanmuutosten perusteella
-Mtime- vaihtoehto rajoittaa hakua sen mukaan, kuinka monta päivää tiedostojen sisältöä muutettiin. Päivien määrittäminen aiemmin käytä negatiivista numeroa. Jos haluat löytää vain ne tiedostot, joita on muutettu kahden viime päivän aikana (48 tuntia sitten), käytä -mtime -2 :
löytö . -mtime -2
-Mmin- vaihtoehto tekee saman, mutta minuutteina, ei päivinä. Tämä komento näyttää esimerkiksi vain viimeisen puolen tunnin aikana muutetut tiedostot:
löytö . -mmin -30
Samanlainen vaihtoehto on -ctime, joka tarkistaa, milloin tiedoston tila on viimeksi muutettu mitattuna päivinä. Tilanmuutos on muutos tiedoston metatietoihin. Esimerkiksi tiedoston käyttöoikeuksien muuttaminen on tilamuutos.
Vaihtoehto -cmin etsii tilamuutoksen, joka mitataan minuutteina.
Voit myös etsiä, milloin tiedosto viimeksi käytettiin - toisin sanoen, kun sen sisältö on viimeksi katsottu. -Atime- vaihtoehtoa käytetään hakemaan tiedostoja niiden viimeisimmän käyttöajan perusteella, mitattuna päivinä.
-Amin- vaihtoehto suorittaa saman haun rajoituksen, mutta mitataan minuutteina.
Tulostuksen ohjaaminen tekstitiedostoon
Jos suoritat erittäin suuren haun, haluat ehkä tallentaa hakutulokset tiedostoon, jotta voit tarkastella tuloksia myöhemmin. Voit tehdä tämän ohjaamalla löydettävän lähdön tiedostoon:
löytö . -iname "* .jpg"> images.txt
Voit sitten avata tulokset tekstieditorissa tai tulostaa ne kissakomennolla.
cat images.txt
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg
Vaihtoehtoisesti voit siirtää lähdön tee- komentoon, joka tulostaa lähdön näytölle ja kirjoittaa sen tiedostoon:
löytö . -koko + 500M | tee bigfiles.txt
./archlinux-2016.02.01-dual.iso
cat bigfiles.txt
./archlinux-2016.02.01-dual.iso
Virheviestien estäminen
Saatat saada virhesanoman "Lupa evätty", kun suoritat haun. Jos esimerkiksi etsit hakemistoa normaalina käyttäjänä:
löytö /
Etsi: `/ var / lib / sudo / ts ': Käyttöoikeuden kieltäminen:` / var / lib / sudo / lectured': Luvan epääminen: `/ var / lib / polkit-1 ': Luvan epääminen:` / var / lib / container ': Luvan epääminen: `/var/lib/gdm3/.dbus': Luvan epääminen:` /var/lib/gdm3/.config/ibus ': Lupa evätty ...
Näyttöön tulee virhesanoma, jos haku yrittää käyttää sellaista tiedostoa, jota käyttäjätilillasi ei ole lupaa lukea. Voit suorittaa haun pääkäyttäjänä ( root ), jolla on täydellinen pääsy kaikkiin järjestelmän tiedostoihin. Mutta ei ole suositeltavaa tehdä asioita juureksi, ellei muita vaihtoehtoja ole.
Jos sinun tarvitsee vain piilottaa "Lupien kieltäminen" -viestit, voit lisätä 2 &> 1 | grep -v "Lupa evätty" komennon loppuun, kuten tämä:
Etsi / 2> & 1 | grep -v "Luvan epääminen"
Yllä oleva esimerkki suodattaa haun "Lupien kieltäminen" -viestit. Millä tavalla?
2> & 1 on erityinen uudelleenohjaus, joka lähettää virhesanomat vakiolähtöön putkistamaan yhdistetyt lähdejohdot grep- komentoon. grep -v suorittaa sitten käänteisen ottelun "Permission denied" -oikeudessa, ja näyttää vain rivit, jotka eivät sisällä kyseistä merkkijonoa.
Uudelleenohjaus ja grepin käyttäminen virheilmoitusten suodattamiseksi on hyödyllinen tekniikka, kun "Luvan epääminen" on haitta hakutuloksissasi, eikä et voi suorittaa hakua juurina.
esimerkit
etsi ~ /. -nimi "* .txt" -amin -120
Etsi kaikki kotihakemistosi tiedostot ja sen alapuolella oleva laajennus " .txt ". Näytä vain viimeisten kahden tunnin aikana avatut tiedostot.
löytö . -nimi "* .zip" -määrä + 10M -mtime -3
Etsi kaikki tiedostot työhakemistosta ja joiden nimessä on laajennus " .zip " ja joiden koko on yli 10 megatavua. Näytä vain sellaiset tiedostot, joiden sisältöä muutettiin viimeisen 72 tunnin aikana.
löytö . -iname "* report *" -tyyppi f -maxdepth 2
Suorita tapausherkkä etsintä tiedostoista, jotka sisältävät sanan " raportti " heidän nimissään. Jos haku etsii hakemiston, jonka nimi on "raportti", älä näytä sitä. Hae vain työhakemistosta ja yhdestä hakemistotasosta sen alla.
etsi / -nimi "* init *" 2> & 1 | grep -v "Lupa evätty" | tee ~ / initfiles.txt
Etsi kaikki tiedostot järjestelmästä, jonka nimi sisältää " init ", tukahduttamalla virheilmoitukset. Näytä tulokset näytöllä ja lähetä ne kotikansion hakemistoon " initfiles.txt ".