Linux find
komento on tehokas työkalu, jonka avulla järjestelmänvalvojat voivat etsiä ja hallita tiedostoja ja hakemistoja perustuu laajan valikoiman hakuehdot. Se voi löytää hakemistoja ja tiedostoja niiden nimi, tyyppi, tai laajennus, koko, käyttöoikeudet, jne.
Lisäksi paikallistamiseen tiedostoja ja hakemistoja, jossa yhdistyvät find
komento muiden kanssa, voit ottaa toiminnan tuloksia., Lisäämällä -exec
vaihtoehto mahdollistaa ylläpitäjille suorittaa ulkoisia komentoja ja suorittaa toimintoja, kuten kopiointi, siirtäminen, poistaminen tai muuttaminen käyttöoikeudet tiedostoja vastaavat määritellyt kriteerit, kuten koko, nimi, jne.
tässä artikkelissa, aloitamme selittämällä perus Linux etsi komentoja esimerkkejä. Tämä näyttää, miten löytää tiedostoja ja hakemistoja. Näytämme sitten, miten -exec
– vaihtoehtoa käytetään toimimaan tiedostoissa tai hakemistoissa niiden koon, käyttöoikeuksien jne.perusteella.,
yleinen syntaksi etsi-komento on
find {path} {name -of-file or dir-to-search} {action-to-take}
Missä
tässä opetusohjelmassa, me selittää, miten etsiä tiedostoja ja hakemistoja matching määritelty kuvioita. Näemme myös, miten toimia tiedostoissa tai hakemistoissa, jotka find-komento paikantaa. Opas perustuu Ubuntuun, mutta sitä sovelletaan useimpiin Linux-jakeluihin ja-versioihin.
Etsi tiedostoja ja Hakemistoja
Etsi tiettyjä tiedostoja nimen tai laajennus
etsiä tietyn tiedoston, suorita seuraava komento root (/)., Komento sisältää etsimäsi tiedoston tarkan nimen.
find . -name file22.txt
Lähtö
./test/file22.txt./sales/file22.txt
huomaa, että tulokset ovat polku. Tämä on tärkeää, jos et tiedä hakemistoon, jossa tiedosto sijaitsee, tai kun se on enemmän kuin yhdessä paikassa.
voit etsiä tiedoston myös toisesta hakemistosta, kun olet vielä nykyisessä paikassa. Tässä tapauksessa, sinun täytyy antaa polku hakemistoon, jossa haluat etsiä.,
find ./test -name file22.txt
etsi tiettyjä tiedostoja toiseen hakemistoon
Tässä tapauksessa, me tarkastelemme kaikille niille, jotka alkavat annetuilla kirjaimilla tiedosto testi-hakemistoon.
find ./test -name file*
Lähtö
./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc
Etsi tiedostoja laajennus
jos Haluat etsiä tiedoston Linux tietty laajennus, lisää se komento.,
find . -name *.txt
Lähtö
./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt
Etsi tiedostoja ja hakemistoja, jonka nimi
Käytä komentoa alla etsiä tiedostoja ja hakemistoja, jotka alkavat qa
. Meidän tietokone, meillä on qatree.txt
ja qa.txt
tiedostot sekä hakemiston, jonka nimi qa
.,
Jos me suorita komento;
find ./ -name "qa*"
Se palauttaa seuraavan tulosteen
./test/qatree.pdf./test/qa.txt./home/qa
– komento palauttaa sekä tiedostoja ja hakemistoja jotka vastaavat hakuehtoja. Etsi vain tiedostoja tai hakemistoja, sinun täytyy määrittää tämä komennossa.
Etsi tiedostoja tai hakemistoja vain
tiedostot vain, käytä type f
vaihto.
– Tiedostot vain,
find ./ -type f -name "qa*"
Lähtö
./test/qatree.pdf./test/qa.txt
Hakemistot vain
Lisää type d
mahdollisuus etsiä hakemistoja vain.,
find ./ -type d -name "qa*"
Lähtö
./home/qa
kirjainkoko löytää komento
Kaikki haut -name
vaihda kirjainkoko on merkitsevä ja ei anna tuloksia isoilla kirjaimilla. Jos haluat kaikki tapaukset, käytä-iname
– vaihtoehtoa.
find ./ -iname "qa*"
Lähtö
./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa
Etsi tiedosto useita hakemistoja
löytää tiedostoja eri hakemistoista, lisätä niiden polut komento., Meidän tapauksessamme, me tarkistaa test
ja numeric
hakemistot.
find ./test ./numeric -name file22.txt -type f
Lähtö
./test/file22.txt/root/numeric/file22.txt
Etsi useita tiedostoja eri laajennuksia kaikki hakemistot
Voit käyttää etsi-komennolla voit etsiä useita tiedostoja, jotka jakavat erilaisia laajennuksia, kuten *.doc
, *.txt
*.pdf
jne. Tämä voidaan tehdä erikseen, yksi laajennus kerrallaan, tai käyttämällä vain yksi komento, joka sisältää kaikki halutut laajennukset.,
find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )
lähtö
Etsi tiedostoja, jotka sisältävät tietyn tekstin
Joskus haluat käyttää tiedostoa, joka sisältää tietyn tekstin, mutta ei voi muistaa sen tiedoston nimi tai sijainti. Tämän komennon avulla voit löytää kaikki tiedostot, jotka sisältävät kohde-tekstiä.
etsiä kaikki tiedostot, jotka sisältävät sanan hyperconvergence”, käyttää;
find / -type f -exec grep -l -i "hyperconvergence" {} ;
Lähtö
/root/numeric/hci/root/HCIP
–i-vaihtoehto mahdollistaa komento sivuuttaa tapauksissa ja löytää tekstin, onko aktivoitu tai ei eli hyperconvergence, Hyperconvergence , jne.,
etsiä tiedostoja tietyssä hakemistossa, yksinkertaisesti lisää se komento
find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;
Lähtö
./numeric/hci
Etsi Tiedostoja ja Hakemistoja Perustuu Koko
Voit löytää kaikki tiedostot tai hakemistot, jotka ovat pienempi, yhtä suuri tai suurempi kuin tietty koko, tietyissä rajoissa tai tyhjä. Käytä sopivaa kokoformaattia etsimäsi tiedostojen tai hakemistojen tyypin mukaan.,nd tiedostoja tietyn koon – yhtä 30MB
Haku löytää kaikki 30MB tiedostoja,
find / -size 30M
Etsi suurempia tiedostoja tietyn koon
find -size +2M
Lähtö
. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c
Etsi tiedostoja, alle 10MB nykyisen hakemiston
find . -type f -size -10M
Etsi tiedostot, joiden koot välillä 100-200MB
Kun etsit tiedostoja tietyn alueen sisällä, kuten välillä 100 ja 200 MB
find / -size +100M -size -200M
etsi hakemistoja suurempi kuin 20kb
find / -type d -size +20k
Löytää tyhjiä tiedostoja ja hakemistoja.,
Tiedostot
find ./ -type f -size 0
tai
find ./ -type f –empty
Hakemistot
find ./ -type d –empty
Etsi tiedostoja, iän tai muuttaminen aika
Etsi tiedostot vanhempi kuin n-päivää
find /path/ -type f -name '*.txt' -mtime +8
-mtime +8
etsii txt
tiedostot, jotka ovat vanhempia kuin 8 päivää.,
, Jonka muokkauspäivämäärä
Tämä tulee etsiä tiedostoja, joita on muutettu viimeisen 17 tuntia
find . -mtime -17 -type f
etsii hakemistoja muutettu viimeisen 10 päivän aikana
find . -mtime -10 -type d
Etsi tiedostoja perustuu pääsy tai muuttaminen
Etsi tiedostoja perustuu päiväys tai aika käsiksi. Tämän avulla voit nähdä tiedostoja, joihin on tai ei ole päästy tietyn ajan kuluessa.
nähdäksesi tiedostot, joita ei ole käytetty viimeksi kuluneiden 10 päivän aikana kotihakemistossa.,
find /home -atime +10
– Tiedostot käsiksi tarkalleen 10 päivää sitten
find /home -atime 10
Käyttää viimeisen 10 päivän aikana
find /home -atime -10
Etsi tiedostoja, joita on muutettu viimeisen n päivää
Voit myös etsiä tiedostoja /home
hakemisto muutettu viimeisen 10 päivää komennolla;
find /home -mtime -10
Etsi tiedostoja, joita on muutettu tiettynä ajanjaksona.
esimerkiksi kaikki kotihakemistossa 6-15 päivää sitten muutetut tiedostot.,
find /home -type f -mtime +6 -mtime -15
Tiedostot ja hakemistot käyttää viimeisen 10 minuuttia
löytää tiedostot käsiksi viimeisen 10 minuuttia, käytä -amin vaihtoehto.
find . -amin -10 -type f
Lähtö
./.bash_history./.profileroot@ubuntu1804:~#
Hakemistot käyttää viimeisen 10 minuuttia
find . -amin -10 -type d
Etsi tiedostot vastaavat erityiset oikeudet
Syntax:
$ find -perm mode
Missä tilassa on lupa, joka on joko numeerinen, esimerkiksi 644, 655, 700, 777
, jne., tai kirjaimet, kuten u=x, a=r+x,
jne.,
voit määrittää moodin seuraavilla kolmella eri tavalla.
- ilman etuliitettä, kun haluat löytää tiedostoja, joissa on määritellyt tarkat käyttöoikeudet.
- With ”
-
” for files with at least the specified permission. Tämä palauttaa tiedostoja määritetyillä sekä muita korkeampia käyttöoikeuksia. - käyttämällä ”
/
” edellyttää omistajan tai ryhmän täsmentämistä tiedostoon annetulla luvalla.,
Etsi tiedostoja lupaa 777
find -perm 777
Lähtö
./file1
Etsi tiedostot, joissa on vähintään 766
etsi -perm -766
Lähtö
./file2./file1
komento näyttää kaikki tiedostot, joihin
- tiedoston omistajalla on luku – /kirjoitus – /suoritusoikeudet.
- Ryhmä on luku/kirjoitus-käyttöoikeudet
- Muut on luku/kirjoitus-oikeuksia
Kuten niin, se palaa kaksi-tiedostot, jotka täyttävät tämän kriteerin – tiedosto1 ja tiedosto2., Tiedostoilla ei tarvitse olla tarkkoja 766
käyttöoikeuksia ja niillä voi olla lisäoikeuksia niin kauan, mutta niillä on oltava ainakin määritellyt.
Etsi tiedostot kirjoitettavissa omistaja
– Meillä on nyt käyttää ”/
” etsii tiedostoja kirjoitettavissa joko niiden omistaja tai ryhmä, tai muita.
find -perm /222../file2./file3./file1
edellä etsii tiedostoja, jotka ovat kirjoitettavissa joko niiden omistaja tai ryhmä.
Tämä palauttaa tiedostoja, jotka ovat kirjoitettavissa joko, mutta ei välttämättä molempia. Jos haluat nähdä tiedostoja, joissa molemmilla on kirjoitettavat oikeudet, käytä – etuliitettä.,
./file2./file1
Etsi tiedostoja käyttäjän omistamia
Löytää kaikki tiedostot omistaa Jack
find /home -user jack
Lähtö
/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi
Etsi tiettyjä tiedostoja käyttäjän omistamia
Löytää kaikki tekstitiedostoja omistaa Jack
find /home -user jack -iname "*.txt"
Lähtö
/home/jack/docs/file32.txt
Etsi ja listaa tiedostot ja hakemistot ja niiden oikeudet
find -name "*.conf" | ls -l
Lähtö
Etsi ja act tulokset
tässä osiossa me tarkastelemme, miten voit toimia tiedostoja, jotka vastaavat mallia määritelty etsi-komennolla.,
Etsi tiedostoja ja muuta käyttöoikeuksia
Etsi ja muuta tiettyjen tiedostotyyppien käyttöoikeuksia. Meidän tapauksessamme, työskentelemme PHP tiedostoja eri käyttöoikeudet kuten alla.,
– Meillä on nyt etsiä kaikki PHP-tiedostot (yllä) ja vaihda niiden käyttöoikeuksia 755
find ver -name "*.php" -type f -exec chmod 755 {} ;
komento näyttää PHP tiedostot ver
hakemisto ja asettaa sitten niiden lupaa 755
(rwxr-xr-x
)
Tuloksia
Löytää ja muuttaa tiedostojen ja hakemistojen käyttöoikeudet
Etsi tiedostot, joissa on 644 oikeudet ja muuttaa niitä on 655 käyttöoikeudet
find . -type f -perm 644 -exec chmod 655 {} ;
Voit myös etsiä hakemistoja 644 oikeudet ja korvata tämän 755.,
find . -type d -perm 644
Lähtö
./docs
docs-kansiossa on 644 oikeudet
drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs
asettaa sen 755
, me ajaa
find . -type d -perm 644 -exec chmod 755 {} ;
Nyt voimme tarkistaa uudelleen, jotta näet, mitä 755
find . -type d -perm 755
Lähtö
.
./ docs
ylhäältä näemme juuri-ja docs-hakemistoissa on 755 käyttöoikeutta.,
Ls –la
komento antaa seuraavat tiedot
drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs
Etsi ja kopioida tiedostoja tai hakemistoja
Löytää ja kopioida tietyn tiedoston hakemistoon
– komennon alla löydät file22.tx
t-tiedosto ja kopioi se ~/tmp/images
hakemisto.,
find -iname file22.txt -exec cp {} ~/tmp/images ;
Etsi ja kopioi yksi tyyppi tiedostoja hakemistoon
löytää tiedostoja, kuten kuvia jpg
laajennus nykyisen hakemiston ja kopioi ne eri paikkaan kuin kuvat-kansioon, käytä;
find -iname '*.jpg' -exec cp {} ~/tmp/images ;
Tämä löytää ja kopioi kaikki jpg-tiedostot ~/tmp/images
kansio.
Etsi ja kopioi yhden tiedoston monet hakemistoja
Etsi ja kopioi yhden useita hakemistoja.,
find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;
Tämä löytää tiedoston hci-tiedosto ja kopioi se kolme hakemistoja /tmp/dir1/ /tmp/dir2/
ja $HOME/3/
Löytää ja siirtää tiedostoja toiseen hakemistoon
siirrä tunnettu tiedosto hakemistosta toiseen., Siirrä universal.php
tiedosto;
find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;
Etsiä ja siirtää tiedostoja, joilla on tietty tiedostotunniste toiseen kansioon
find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;
Etsi tiettyjä tiedostoja ja siirtyä tiettyyn toiseen kansioon
find -type f -name uni*.* -exec mv {} ~/unifiles/ ;
komento näyttää kaikki tiedostot, joiden nimet alkavat uni
ja joilla on jokin tiedostotunnistetta. Se sitten siirtää ne hakemistoon /unifiles/
Löytää ja siirtää tiedostoja perustuu age
Löytää ja siirtää tiedostoja vanhempi kuin määritetty päivä eri paikkaan, kuten arkisto.,
find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;
Tämä näyttää pdf-tiedostoja vanhempi kuin 20 päivää ja siirrä ne backup1-hakemistoon.,tiedostojen ja hakemistojen
syntaksi löytää ja poistaa tiedostoja tai hakemistoja tässä hakemistossa on.
find . -type f -name "file to delete" -exec rm -f {} ;
voit poistaa tiedostoja vain, tai
find . -type d -name "dir-to-delete" -exec rm -rf {} ;
poistaa hakemistoja vain
Löytää ja poistaa tiettyjä tiedostoja vain
löytää ja poistaa tiedostoja, alkaen ennen, käyttää;
find . -type f -name "til*" -exec rm {} ;
löytää ja poistaa hakemistoja alkaen, kunnes
find . -type d -name "til*" -exec rm {} ;
Poista molemmat tiedostot ja hakemistot
find . -name "til*" -exec rm -rf {} ;
Tämä poistaa molemmat tiedostot ja hakemistot alkaen kirjaimet ennen kuin.,
Poista laajennus
Alla on, miten voit etsiä ja poistaa kaikki txt
tiedostot nykyisestä hakemistosta. Vaihda txt
toisen tiedostotunnistetta kuten bak
, pdf
tai muita, jotka haluat poistaa.
find . -type f -name "*.txt" -exec rm -f {} ;
jos haluat, että järjestelmä pyytää sinua vahvistamaan ennen kunkin tiedoston poistamista, lisää -minä vaihtoehto alla.,
find . -type f -name "*.txt" -exec rm -i {} ;
Lähtö
oletuksena -rm
ei poista hakemistoja ja sinun täytyy käyttää –r
mahdollisuus varmistaa rekursiivinen poisto. Näin varmistetaan tyhjien hakemistojen ja tiedostoja sisältävien hakemistojen poistaminen. -f
– vaihtoehto pakottaa poiston ja sitä käytetään sekä tiedostoissa että hakemistoissa.
Etsi ja poista n päivää vanhempia tiedostoja
Etsi ja poista yli 20 päivää vanhempia varmuuskopiotiedostoja nykyisestä hakemistosta.,
find . -type f -name '*.bak' -mtime +20 -exec rm {} ;
Tämä poistaa kaikki .bak
tiedostot vanhempi kuin 20 päivää.
Löytää ja poistaa hakemistoja vain
jos Haluat poistaa hakemiston, jota kutsutaan nimellä dir22
find . -type d -name dir22 -exec rm -rf {} ;
Varmista, että olet ottelu hakemiston nimi asia tai käytä -iname
vaihtoehto.
find . -type d -iname Dir22 -exec rm -rf {} ;
Poistaa molemmat Dir22
ja dir22
vahvista ennen poistamista, käytä-i-vaihtoehto.
find . -type d -iname Dir22 -exec rm -rf -i {} ;
Lähtö
rm: poista hakemisto ’./ Dir22’?, n
rm: remove directory”./ dir22′? y
– meidän tapauksessamme, me kirjoitetaan n
hakemisto Dir22
joka ei voi poistaa ja y
varten dir22
, joka on nyt poistettu.
Etsi ja poista tyhjät tiedostot
voit käyttää mitä tahansa seuraavista komennoista tyhjien tiedostojen paikantamiseen ja niiden poistamiseen automaattisesti.
find ./ -type f -size 0 -exec rm -f {} ;
tai
etsi ./ – type f-size 0 / xargs rm-F
tai
find .,/ -type f -koko 0 –poistaa
Löytää ja poistaa tyhjiä hakemistoja
poistaa tyhjät hakemistot käytämme d
vaihtoehto.
find ./ -type d -empty -exec rmdir {} ;
Toinen vaihtoehto on käyttää poista sen sijaan poistaa.
find ./ -type d -empty -delete
huomaathan, että poistamalla järjestelmän tai kriittisiä tiedostoja tietokoneessa voi vahingoittaa käyttöjärjestelmää tai sovelluksia, tai johtaa menetykseen tärkeitä tietoja.
tahattomien poistojen välttämiseksi on parasta käyttää ei-root-käyttäjätiliä., Myös, varmista, että olet poistamalla oikeat tiedostot, jotka eivät ole hyödyllisiä ja että sinulla on varmuuskopio kaikki tiedostot varmuuden vuoksi.
mitä seuraavaksi?
mene eteenpäin ja kokeile yllä olevia Linux find-komentoja laboratoriossa tai muussa kuin tuotantoympäristössä. Katso, jos voit käyttää joitakin automatisoida tiedostojärjestelmän siivous kanssa Crontab. Ja, master Linux, tutustu tämän verkkokurssin.