Tiedostojen ja hakemistojen löytäminen Linuxissa

Linux-käyttöjärjestelmissä löytökomentoa voidaan käyttää etsimään tietokoneessa olevia tiedostoja ja hakemistoja. Jatka valitsemalla linkki seuraavasta luettelosta tai käymällä läpi kunkin osan.

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 ".