find komento rekursiivisesti suodatus esineitä tiedosto järjestelmä, joka perustuu yksinkertainen ehdollinen mekanismi. Käytä find etsi tiedostojärjestelmästäsi tiedostoa tai hakemistoa. -exec – lipulla tiedostot löytyvät ja ne käsitellään välittömästi samassa komennossa.,

Find Linux Files by Name or Extension
Use find from the command line to locate a specific file by name or extension., Seuraava esimerkki hakee *.err tiedostot /home/username/ hakemistossa ja kaikki sen osa-hakemistoja:
find /home/username/ -name "*.err"
Sinun pitäisi nähdä samanlainen lähtö konsoliin:
/home/username/example.errThe matching file in the /home/username/ directory is "example.err"
Yleiset Linux-Etsi Komennot ja Syntaksi
find komento kestää yleensä seuraavassa muodossa:
find options starting/path expression
-
optionsmäärite ohjaa käyttäytymistä ja optimointi menetelmäfindprosessi., -
starting/pathattribuutti määrittelee ylätason hakemistoon, jossafindalkaa suodatus. -
expressionmäärite ohjaa testit, jotka etsiä hakemiston hierarkia tuottaa tuotos.
Etsi Tiedosto, Linux Käyttäen Tiedostonimi
löytää tiedoston tiedostonimi, käyttää syntaksia find -name filename. Jättämällä polku etsii tiedoston koko levyn., Esimerkiksi, voit löytää tiedoston nimeltä example.err sijaitsee /home/username hakemisto komennolla:
find -name example.err
Sinun pitäisi nähdä samanlainen tuotos:
./username/example.err
Etsi Tiedosto Nykyisessä Hakemistossa Käyttämällä Etsi-Komentoa
katso esimerkki hakemistorakenne ja tiedostot. Niihin viitataan kaikissa tämän oppaan esimerkeissä.,haluatko löytää tiedosto example.err sisällä hakemistosta tai sen alihakemistoista, voit antaa seuraavan komennon:
find . -name example.err
Oman tuotannon muistuttaa seuraavaa:
./example.err./directory_1/example.err
lähtö kuvastaa directory_1 hakemistorakenne:
├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err
Etsi Kuva Tiedostot Linux-komentoriviltä
Löytymistä tiedoston rakenne edellisessä jaksossa, on kuva nimeltä image01.png, joka sijaitsee juureen (/)s hakemiston rakenne.,
etsi tiedosto image01.png suorita seuraava find – komento, joka etsii kaikki .png tiedostot tallennetaan sisälle / hakemisto.
find -name *.png
Sinun pitäisi nähdä samanlainen lähtö:
./image01.png
Vaihda kuvatiedoston tyyppi ja etsiä .jpg tiedostot sisällä juurihakemistoon (/):
find -name *.jpg
lähtö muistuttaa esimerkiksi., Katso edellisen jakson esimerkkihakemistorakenne nähdäksesi tiedoston sijainnin.
./web_files/unnamed.jpg
Etsi Tyhjä Tiedosto Hakemistoon Komennolla Line
löytää tyhjän tiedoston hakemistoon käyttää komentoriviltä, antaa seuraava komento:
find . -type f -empty
Jos ei lähtö palautetaan, niin siellä ei ole tyhjä tiedosto, nykyisen hakemiston.
Valinnat ja Optimointeja Löytää Tiedostot Linux-komentoriviltä
oletuksena kokoonpano find ignoressymbolic linkkejä., Jos haluat find seurata ja palata symbolisia linkkejä, lisää -L mahdollisuus komennon, kuten alla:
find -O3 -L /var/www/ -name "*.html"
Tämä komento mahdollistaa maksimi optimointi tasolla (-O3) ja avulla find seuraa symbolisia linkkejä (-L). find hakee koko hakemistopuun alla /var/www/ tiedostoja, jotka päättyvät .html.,
find optimoi sen suodatus strategia suorituskyvyn parantamiseksi. Kolme käyttäjän valittavissa optimointi tasot on määritelty -O1, -O2 ja -O3. -O1 optimointi on oletuksena ja voimia find suodattaa perustuu tiedostonimi ennen käynnissä kaikki muut testit.,
Optimointi osoitteessa -O2 taso priorisoi tiedostonimi suodattimet, kuten -O1, ja sitten kulkee kaikki tiedosto-tyyppi suodatus, ennen kuin jatkat muita enemmän resursseja vaativia ehtoja. Taso -O3 optimointi mahdollistaa find suorittaa vakavin optimointi ja järjestää uudelleen kaikki testit, jotka perustuvat niiden suhteellinen kustannuksellaan ja todennäköisyys niiden menestys.,
| Command | Description |
|---|---|
-O1 |
Filter based on filename first (default). |
-O2 |
File name first, then file-type., |
-O3 |
Salli find automaattisesti uudelleen, jotta haku perustuu resurssien tehokkaaseen käyttöön ja todennäköisyys. menestystä |
-maxdepth X |
Haku hakemisto sekä kaikki sen osa-hakemistoja X tasoa syvä. |
-iname |
Haku ilman huomioon tekstin tapauksessa., |
-not |
Return only results that do not match the test case. |
-type f |
Search for files. |
-type d |
Search for directories., |
Etsi Tiedostoja Linux Muutoksen Aikaa komentorivin Avulla
find komento voi suodattaa hakemiston hierarkia perustuu, kun tiedosto on viimeksi muutettu., Esimerkiksi seuraava komento havaitsee tiedoston kanssa .err laajennus, joka oli muutettu viimeisen 7 päivän aikana:
find / -name "*err" -mtime -7
esimerkissä komento palauttaa seuraavan tulosteen:
Käytä Grep Löytää Tiedostot Linux-komentoriviltä
find komento ei vain voi suodattaa hakemiston hierarkia perustuu tiedoston nimen ja metatiedot. Jos sinun täytyy etsiä tiedoston sisällön perusteella, käytä työkalua likegrep., Harkitse seuraava esimerkki:
find . -type f -exec grep "test" '{}' \; -print
Tämä komento etsii jokaisen esineen nykyisen hakemiston hierarkia (.), joka on tiedoston (-type f) ja sitten suorittaa komennon grep "test" jokainen tiedosto, joka täyttää edellytykset. Ruudulle tulostetaan vastaavat tiedostot (-print). Kihara hammasraudat ({}) ovat paikkakuntana find match-tuloksille., {} ovat yksinkertaisten lainausmerkkien sisään (') välttää luovuttamalla grep epämuodostunut tiedostonimi. -exec komento lopetetaan puolipisteellä (;), joka olisi karannut (\;), jotta vältettäisiin tulkinta, jonka kuori.
tiedosto käyttää esimerkissä (example.err) on tekstin sisällä, joka sanoo, ”testi”., Kun suoritat esimerkkikomentoa, näet samanlaisen ulostulon:
Grep tunnisti jokaisen tiedoston nykyisen työhakemiston sisällä, joka sisältää merkkijonon ”test”.,
Huomautus
Ennen
findkomento täytäntöönpano-execvaihtoehto, voit luoda samanlainen lähtö esimerkissä käyttäenxargskomento:find . -type f -print | xargs grep "test"
Prosessi ja Etsiä Tiedostoja Käyttämällä Etsi-Komentoa Linux
-exec vaihtoehto suorittaa komentoja vastaan, jokainen esine, joka vastaa find ilme., Harkitse seuraava esimerkki:
find . -name "example.err" -exec chmod o+r '{}' \;
Tämä suodattimia jokaisen esineen nykyinen hierarkia (.) tiedostoja nimeltä rc.conf ja juoksee chmod o+r komento muuttaa tiedoston käyttöoikeuksia find komento tuloksia.
esimerkissä komento toimii ja suorittaa -exec vaihtoehto root-hakemistoon find prosessi. Käytä -execdir suorittaaksesi määritetyn komennon hakemistossa, jossa ottelu sijaitsee., Tämä voi lievittää turvallisuusongelmia ja parantaa suorituskykyä joissakin operaatioissa.
-exec tai -execdir valinnat ajaa ilman muita ohjeita. Jos haluat kysytään ennen kuin toimenpiteisiin ryhdytään, korvata -exec -ok tai -execdir -okdir.
Miten Etsi ja Poista Tiedostoja Linux Command Line
Varoitus
Käytä tätä vaihtoehtoa varoen.,
Lisää vaihtoehto -delete lopussa ottelun ilme poistaa kaikki tiedostot, jotka vastaavat. Käytä tätä vaihtoehtoa, kun olet varma, että tulokset vastaavat vain tiedostoja, jotka haluat poistaa.
alla olevassa esimerkissä find rekursiivisesti etsii kaikki tiedostot hierarkiassa alkaen nykyiseen hakemistoon ja poistaa kaikki tiedostot, jotka päättyvät .err laajennus:
find . -name "*.err" -delete
Vielä on muutamia kysymyksiä?,
Liity yhteisöömme ja lähetä kysymyksesi muille Linode-ja Linux-harrastajille auttaaksesi sinua.
Aiheeseen liittyvät kysymykset: