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
-
options
määrite ohjaa käyttäytymistä ja optimointi menetelmäfind
prosessi., -
starting/path
attribuutti määrittelee ylätason hakemistoon, jossafind
alkaa suodatus. -
expression
mää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
find
komento täytäntöönpano-exec
vaihtoehto, voit luoda samanlainen lähtö esimerkissä käyttäenxargs
komento: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: