Android

Kuinka löytää tiedostoja linuxista komentorivin avulla

Komentorivi Linux-ympäristössä

Komentorivi Linux-ympäristössä

Sisällysluettelo:

Anonim

find komento on yksi tehokkaimmista työkaluista Linux-järjestelmänvalvojien arsenaalissa. Se etsii tiedostoja ja hakemistoja hakemistohierarkiassa käyttäjän antaman lausekkeen perusteella ja voi suorittaa käyttäjän määrittelemät toimenpiteet jokaisessa vastaavassa tiedostossa.

find komennon avulla voit etsiä tiedostoja ja hakemistoja niiden oikeuksien, tyypin, päivämäärän, omistajuuden, koon ja muun perusteella. Sitä voidaan käyttää myös yhdessä muiden työkalujen, kuten grep tai sed .

Linux find komentosyntaksin

find komennon yleinen syntaksi on seuraava:

find

  • options ominaisuus hallitsee symbolisten linkkien, virheenkorjausvaihtoehtojen ja optimointimenetelmien käsittelyä. path… -attribuutti määrittelee aloitushakemiston tai hakemistot, joista etsintä etsii tiedostoja. Lausekeominaisuus koostuu vaihtoehdoista, hakumalleista ja operaattoreiden erottamat toimet.

Hakeaksesi tiedostoja hakemistosta, etsimiskomentoa käyttävän käyttäjän on oltava kyseisen hakemiston lukuoikeudet.

Katsotaanpa seuraavaa esimerkkiä:

find -L /var/www -name "*.js"

  • Vaihtoehto -L (asetukset) käskee etsimiskomennon seuraamaan symbolisia linkkejä. /var/www (polku…) määrittelee hakemiston, jota etsitään. ( -name "*.js ) -name "*.js käskee etsimään tiedostoja, jotka päättyvät .js (JavaScript-tiedostot).

Etsi tiedostoja nimen mukaan

Tiedostojen etsiminen nimen perusteella on todennäköisesti etsimiskomennon yleisin käyttö. Jos haluat löytää tiedoston sen nimen perusteella, -name vaihtoehto seurasi etsimäsi tiedoston nimeä.

Esimerkiksi hakemalla /home/linuxize hakemistossa tiedostoa, jonka nimi on document.pdf , käyttäisit seuraavaa komentoa:

find /home/linuxize -type f -name document.pdf

Jos haluat suorittaa isojen ja isojen kirjaimien välillä haun, muuta -name asetusta -iname :

find /home/linuxize -type f -iname document.pdf

Yllä oleva komento vastaa ”Document.pdf”, “DOCUMENT.pdf”..etc.

Etsi tiedostoja laajennuksen perusteella

Tiedostojen etsiminen laajennuksen perusteella on sama kuin tiedostojen etsiminen nimen perusteella. Esimerkiksi löytääksesi kaikki tiedostot, jotka päättyvät .log.gz hakemistoon /var/log/nginx voit käyttää:

find /var/log/nginx -type f -name '*.log.gz'

On tärkeätä mainita, että kun käytät jokerimerkkiä, sinun on joko lainattava kuvio tai poistettava tähdellä * symboli alaviivalla \ jotta kuori ei tulkitse sitä.

Löydät kaikki tiedostot, jotka eivät vastaa regex *.log.gz -vaihtoehtoa *.log.gz . Esimerkiksi löytääksesi kaikki tiedostot, jotka eivät lopu *.log.gz :

find /var/log/nginx -type f -not -name '*.log.gz'

Etsi tiedostoja tyypin mukaan

Joskus joudut ehkä etsimään tiettyjä tiedostotyyppejä, kuten normaalit tiedostot, hakemistot tai linkit. Linuxissa kaikki on tiedostoa.

Voit etsiä tiedostoja tyypin perusteella käyttämällä -type asetusta ja yhtä seuraavista kuvaajista määrittääksesi tiedostotyypin:

  • f : tavallinen tiedosto d : hakemisto l : symbolinen linkki c : merkkilaitteet b : estää laitteet p : nimeltään putki (FIFO) s : liitin

Esimerkiksi, jos haluat löytää kaikki hakemistot nykyisestä työhakemistosta, käytä:

find. -type d

Yleinen esimerkki olisi verkkosivustotiedostojen käyttöoikeuksien rekursiivinen muuttaminen 644 ja hakemistojen käyttöoikeuksien 755 chmod komennolla:

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

Etsi tiedostoja koon mukaan

Jos haluat löytää tiedostoja tiedostokokoon perustuen, -size parametri -size yhdessä kokoluokituksen kanssa. Voit määrittää tiedostokoko seuraavilla jälkiliitteillä:

  • b : 512 tavun lohkot (oletus) c : tavut w : kahden tavun sanat k : kilotavua M : megatavua G : gigatavua

Seuraava komento löytää kaikki tiedostot, joiden tarkkuus on 1024 tavua /tmp hakemistosta:

find /tmp -type f -size 1024c

find komennon avulla voit myös etsiä tiedostoja, jotka ovat suurempia tai pienempiä kuin määritetty koko.

Seuraavassa esimerkissä etsimme kaikkia alle 1MB tiedostoja nykyisessä työhakemistossa. Huomaa miinusmerkki ennen koon arvoa:

find. -type f -size -1M

find. -type f -size +1M

Voit jopa etsiä tiedostoja kokoalueelta. Seuraava komento löytää kaikki tiedostot välillä 1 2MB :

find. -type f -size +1M -size 21M

Etsi tiedostoja muokkauspäivän mukaan

find komento voi myös etsiä tiedostoja niiden viimeisen muokkaus-, käyttö- tai muutosajan perusteella.

Käytä plus- ja miinusmerkkejä samoin kuin etsiessäsi koon mukaan, jos olet suurempi kuin tai pienempi.

Oletetaan, että muutama päivä sitten muutit yhtä dovecot-asetustiedostoista, mutta unohdit kumman. Voit suodattaa helposti kaikki tiedostot hakemistossa /etc/dovecot/conf.d jonka lopussa on .conf ja joita on muokattu viimeisen viiden päivän aikana:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Tässä on toinen esimerkki tiedostojen suodattamisesta muokkauspäivämäärän perusteella käyttämällä -daystart . Alla oleva komento luettelee kaikki /home hakemistossa olevat tiedostot, joita on muokattu vähintään 30 päivää sitten:

find /home -mtime +30 -daystart

Etsi tiedostoja käyttöoikeuksien mukaan

-perm avulla voit etsiä tiedostoja tiedostojen käyttöoikeuksien perusteella.

Esimerkiksi, jos haluat löytää kaikki tiedostot, joiden käyttöoikeudet ovat tarkalleen 775 /var/www/html hakemistosta, käyttäisit:

find /var/www/html -perm 644

Voit liittää numeerisen tilan eteen miinus - tai vinoviiva / -näppäimillä.

Kun viivaa / käytetään etuliitteenä, ainakin yhdellä luokalla (käyttäjä, ryhmä tai muu) on oltava ainakin vastaavat bitit asetettu tiedoston vastaamaan.

Mieti seuraavaa komentoa:

find. -perm /444

Yllä oleva komento vastaa kaikkia tiedostoja, joiden lukuoikeudet on asetettu joko käyttäjälle, ryhmälle tai muille.

Jos miinus - käytetään etuliitteenä, niin tiedoston on vastattava vähintään määritettyjä bittejä. Seuraava komento etsii tiedostoja, joilla on omistajan ja ryhmän lukemis- ja kirjoitusoikeudet ja jotka ovat muiden käyttäjien luettavissa:

find. -perm -664

Etsi omistajan tiedostoja

Löydät tietyn käyttäjän tai ryhmän omistamat tiedostot käyttämällä -user ja -group .

Esimerkiksi, jos haluat etsiä kaikkia käyttäjän omistamia tiedostoja ja hakemistoja linuxize , suorita:

find / -user linuxize

Tässä on reaalimaailman esimerkki. Oletetaan, että haluat löytää kaikki käyttäjän www-data omistamat tiedostot ja muuttaa vastaavien tiedostojen omistajuuden www-data nginx :

find / -user www-data -type f -exec chown nginx {} ;

Etsi ja poista tiedostoja

Jos haluat poistaa kaikki vastaavat tiedostot, lisää-Poista-vaihtoehto -delete loppuun.

Varmista, että käytät tätä vaihtoehtoa vain, kun olet varma, että tulos vastaa poistettavia tiedostoja. On aina hyvä idea tulostaa vastaavat tiedostot ennen kuin -delete -vaihtoehto.

Voit esimerkiksi poistaa kaikki tiedostoja, jotka päättyvät .temp hakemistosta /var/log/ :

find /var/log/ -name `*.temp` -delete Käytä- -delete vaihtoehtoa erittäin varovaisesti. Find-komentorivi arvioidaan lausekkeena ja jos lisäät ensin -delete vaihtoehdon, komento poistaa kaiken määrittämiesi lähtöpisteiden alapuolella.

Haettaessa hakemistot, find voi poistaa vain tyhjät hakemistot samoin kuin rmdir .

johtopäätös

Olemme osoittaneet sinulle, kuinka voit käyttää find komentoa eri vaihtoehtojen ja kriteerien kanssa.

Tämän artikkelin tulisi antaa sinulle perusteellinen käsitys tiedostojen paikantamisesta Linux-järjestelmissä. Voit myös käydä find man-sivulla ja lukea kaikista muista löytökomennon tehokkaista vaihtoehdoista.

etsi terminaali