Kuidas leida faile ja katalooge Linuxis

Linuxi operatsioonisüsteemides võib otsingu käsku kasutada arvuti failide ja kataloogide otsimiseks. Jätkamiseks valige allolevast loendist link või käige läbi iga sektsiooni.

Märkus: leidmise kasutamiseks alustage käsurea avamiseks terminali seansi avamisega.

Lehe põhifunktsioonid

Otsingu leidmine ilma suvanditeta loob loendi kõigist failidest ja kataloogidest töökausta all ja selle all. Näiteks kui teie töökaustadeks on / home / hope / dokumendid, kuvatakse jooksvate otsingute puhul järgmised andmed:

  • Iga fail / home / hope / Documents .
  • Iga alamkataloog / home / hope / Documents .
  • Iga fail nendes alamkataloogides.

Vaatame seda tegevuses. Esmalt kontrollime oma töö kataloogi, kasutades käsku pwd:

pwd

 / home / hope / Dokumendid 

Nüüd käivitame otsingu ilma võimalusteta:

leida

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

Selles näites näeme meie Dokumendi kaustas ja selle all kokku kümme faili ja neli alamkataloogi.

Pange tähele, et väljund algab ühe punktiga, mis esindab töö kataloogi. Otsingu tegemine ilma suvanditeta on sama, mis täpsustab, et otsing peaks algama töö kataloogi, nagu see:

leida.

Ülaltoodud näide on "õige" viis leida . Kui üritate seda kasutada mõnes teises UNIX-tüüpi operatsioonisüsteemis, näiteks FreeBSD-s, leiate, et kataloogi täpsustamine on vajalik, seega on hea kasutada seda käsku.

Täpsustage, kust otsida

Ainult kataloogi / home / hope / Documents / images sisaldavate failide ja alamkataloogide loendi määramiseks määrake see käsu esimeseks argumendiks:

leida / home / hope / Dokumendid / pildid

 / home / hope / Dokumendid / pildid / home / hope / Dokumendid / pildid / 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 

Pange tähele, et tulemustes on näidatud ka kogu tee.

Kui meie töö kataloog on / home / hope / Documents, saame kasutada järgmist käsku, mis leiab samad failid:

leidke ./images

Aga seekord peegeldab väljund otsingu algset asukohta ja näeb välja selline:

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

Vaikimisi otsib otsing teie lähtepunkti igas alamkataloogis. Kui soovite piirata, kui palju alamkataloogi otsida, saate kasutada -maxdepth valikut numbriga.

Näiteks otsitakse -maxdepth 1 otsitakse ainult selles kataloogis, kus otsing algab. Kui leitakse mõni alamkataloog, kuvatakse need, kuid neid ei otsita.

leida. -maxdepth 1

 . ./images ./bigfiles.txt ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./archlinux-2016.02.01-dual.iso 

-Maxdepth 2 määramine otsib kataloogi ja ühte alamkataloogi sügavalt:

leida. -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 määramine otsib üht taset sügavamalt kui:

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

Leidmine nime järgi

Oma otsingutulemuste piiramiseks ainult failide ja kataloogidega, millel on teatud nimi, kasutage -name valikut ja sisestage nimi jutumärkidesse:

leida. -nimi "picard.jpg"

 ./images/memes/picard.jpg 

Faili nime osana saate kasutada ka metamärke. Näiteks selleks, et leida kõik failid, mille nimi lõpeb .jpg-ga, saate kasutada tärniga ülejäänud faili nime. Käsu käivitamisel kobestab kate failinime kõike, mis sobib musteriga:

leida. -nimi "* .jpg"

 ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/picard.jpg 

Pange tähele, et meie käsk ei loendanud faili, mille laiend ( JPG ) on suurtähtedega. Seda sellepärast, et erinevalt teistest operatsioonisüsteemidest, nagu Microsoft Windows, on Linuxi failinimed tõstutundlikud.

Juhtumitundliku otsingu tegemiseks kasutage -iname valikut:

leida. -iname "* .jpg"

 ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg 

Ainult failide või ainult kataloogide leidmine

Ainult failide loendamiseks ja kataloogide nimede jätmiseks oma tulemustest määrake -type f :

leida. - tüüp 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 

Ainult kataloogide loendamiseks ja failinimede väljajätmiseks määrake -type d :

leida. - d tüüp

 . ./images ./images/hp ./images/memes ./hp-fanfic 

Suuruse järgi failide leidmine

Ainult teatud suurusega failide kuvamiseks saate kasutada -size valikut. Suuruse määramiseks kasutage pluss- või miinusmärki ("rohkem kui" või "vähem kui"), numbrit ja kvantitatiivset sufiksit nagu k, M või G.

Näiteks selleks, et leida faile, mis on "suuremad kui 50 kilobaiti", kasutage -size + 50k :

leida. -suur + 50k

 ./images/memes/winteriscoming.jpg ./gimp-2.8.16.tar.bz2 ./archlinux-2016.02.01-dual.iso 

Failide puhul, mis on suuremad kui 10 megabaiti, kasutage -size + 10M :

leida. -suur + 10M

 ./gimp-2.8.16.tar.bz2 ./archlinux-2016.02.01-dual.iso 

"Suurema kui 1 gigabaiti" puhul kasutage -size + 1G :

leida. -suur + 1G

 ./archlinux-2016.02.01-dual.iso 

Teatud suurusega failide puhul kasutage kahte suurust. Näiteks, kui soovite leida faile "suurem kui 10 megabaiti, kuid väiksem kui 1 gigabait", määrake -size + 10M -size -1G :

leida. -mõõdus + 10M-suurus -1G

 ./gimp-2.8.16.tar.bz2 

Failide leidmine muutmise, juurdepääsu või oleku muutmise põhjal

-Mtime valik piirab otsingu, kui mitu päeva on faili sisu muudetud. Mineviku päevade määramiseks kasutage negatiivset arvu. Näiteks selleks, et leida ainult need failid, mida on viimase kahe päeva jooksul muudetud (48 tundi tagasi), kasutage -mtime -2 :

leida. -mtime -2

-Mmin valik teeb sama, aga minutite, mitte päevade järgi. Näiteks näitab see käsk ainult viimase poole tunni jooksul muudetud faile:

leida. -mmin -30

Sarnane valik on -ctime, mis kontrollib faili oleku viimast muutmist, mõõdetuna päevadel. Oleku muutus on faili metaandmete muutus. Näiteks faili muutmise muutmine on oleku muutus.

Valik -cmin otsib staatuse muutust minutites mõõdetuna.

Samuti saate otsida, millal faili viimati kasutati - teisisõnu, kui selle sisu on viimati vaadatud. Valiku -atime abil otsitakse faile, mis põhinevad nende viimastel juurdepääsuaegadel, mõõdetuna päevadel.

-Amin- valik teeb sama otsingupiirangu, kuid mõõdetakse minutites.

Väljundi suunamine tekstifaili

Kui teete väga suurt otsingut, võite soovida salvestada otsingutulemused faili, et saaksite tulemusi hiljem vaadata. Seda saate teha, suunates oma otsingutulemused failile:

leida. -iname "* .jpg"> images.txt

Seejärel saate oma tulemused tekstiredaktoris avada või printida kassi käsuga.

kass images.txt

 ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg 

Teise võimalusena saate oma väljundi tee- käsule tuua, mis prindib väljundi ekraanile ja kirjutab selle faili:

leida. -mõõdus + 500M | tee bigfiles.txt

 ./archlinux-2016.02.01-dual.iso 

kass bigfiles.txt

 ./archlinux-2016.02.01-dual.iso 

Veateadete kustutamine

Otsingu tegemisel võidakse saada veateade "Luba keelatud". Näiteks kui otsite juurkataloogist tavalise kasutajana:

leidke /

 leida: `/ var / lib / sudo / ts ': luba keelatud leida:` / var / lib / sudo / lectured': luba keelatud leida: `/ var / lib / polkit-1 ': luba keelatud leida:` / var / lib / container ': luba keelatud: `/var/lib/gdm3/.dbus': luba on keelatud:` /var/lib/gdm3/.config/ibus ': luba keelatud ... 

Saate selle tõrketeate, kui otsing üritab pääseda failile, mida teie kasutajakonto ei luba lugeda. Võimalik, et saate sooritada otsingu superuserina ( root ), millel on täielik juurdepääs igale süsteemi failile. Kuid pole soovitatav asju juureks teha, kui muid võimalusi pole.

Kui kõik, mida pead tegema, on peita "Luba keelatud" sõnumeid, saate lisada 2 &> 1 | grep -v "Luba keelatud" teie käsu lõpuni, nagu see:

leida / 2> & 1 | grep -v "Luba keelatud"

Ülaltoodud näide filtreerib otsingust välja "Luba keelatud" sõnumid. Kuidas?

2> & 1 on spetsiaalne ümbersuunamine, mis saadab veateateid standardväljundile, et ühendada väljundi liini grep- käsu. grep -v täidab seejärel pöördvõrdel "luba keelatud", kuvades ainult neid ridu, mis ei sisalda seda stringi.

Grepi ümbersuunamine ja kasutamine veateadete filtreerimiseks on kasulik meetod, kui "Luba keelatud" on otsingutulemuste segadust tekitav ja te ei saa otsingut juurina teha.

Näited

leidke ~ /. -nimi "* .txt" -amiin -120

Leia kõik oma kataloogi kõik failid ja allapoole, mis lõpeb laiendiga " .txt ". Näita ainult neid faile, millele on juurdepääs viimase kahe tunni jooksul.

leida. -nimi "* .zip" -suure + 10M -mtime -3

Leia kõik töö kataloogi failid, mille nimele on laiend " .zip " ja mille suurus on suurem kui 10 megabaiti. Näita ainult faile, mille sisu on viimase 72 tunni jooksul muudetud.

leida. -iname "* report *" - tüüp f -maxdepth 2

Tehke juhtumikindel otsing failidele, mis sisaldavad nende nimel sõna " aruanne ". Kui otsing leiab nime, mille nimi on "aruanne", ärge seda kuvage. Otsige ainult töökausta ja selle all olevat kataloogi.

leidke / -nimi "* init *" 2> & 1 | grep -v "Luba keelatud" tee ~ / initfiles.txt

Leia kõik failid süsteemis, mille nimi sisaldab " init ", tõkestades veateated. Näita tulemusi ekraanil ja väljastab need oma kataloogi nimega " initfiles.txt ".