Kako koristiti naredbu find. Kako tražiti datoteke u Linuxu pomoću naredbe find

Vjerovatno ste upoznati sa ovim problemom: postoji datoteka, a ne sjećate se gdje ste je stavili.

U ovom slučaju, naredba find je zgodna. Kako ga koristiti? Naravno, ovaj uslužni program dolazi sa velikom man stranicom, ali ćemo pogledati neke tipične slučajeve. Pregledajte stablo direktorija, počevši od trenutnog, i pronađite datoteku lostfile.txt:

Ako pretražujete kroz veliko stablo direktorija, naredba find može biti prilično spora. Ponekad je zgodnije koristiti naredbu lociranja. Ne traži datoteku direktno u sistemu datoteka, već gleda kroz njegovu bazu podataka. Ova metoda je mnogo brža, ali baza podataka može postati zastarjela. Na nekim distribucijama, ova baza podataka se ažurira svake noći. Možete ručno pokrenuti naredbu updatedb s vremena na vrijeme da biste je ažurirali. locirati traži podnizove:

Broj dozvoljenih pravopisnih grešaka ovisi o dužini naziva datoteke, ali se može postaviti opcijom -t. Da dozvolite najviše 2 greške i koristite uslužni znak, jednostavno upišite:

Pregled stabla imenika

Ponekad je potrebno dobiti pregled stabla direktorija. Na primjer, dobili ste novi CD-ROM i želite da znate šta se nalazi na njemu. Možete koristiti samo ls - R. Lično, radi čitljivosti, više volim jedan od na sledeće načine. Stablo (sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz) prikazuje stablo direktorija kao dijagram.

Ili koristite stari dobri nalaz. U Gnu verziji find , koja se obično isporučuje s Linuxom, moguće je promijeniti izlazni format kako bi se prikazao, na primjer, naziv datoteke i veličina:

Možete koristiti malu perl rutinu koja radi sa naredbom ls da uradite ovakve stvari. Može se preuzeti ovdje: lsperl.gz . Postoje mnogi drugi uslužni programi za pregledavanje stabla direktorija, ali u većini slučajeva oni su dovoljni.

Pretražujte datoteke po sadržaju (tražite tekstualne nizove u datotekama).

Standardni uslužni programi za pronalaženje tekstualnih nizova u datotekama su grep / egrep za normalne pretrage izraza i fgrep za pretraživanje literalnih stringova. Da biste tražili izraz u svim datotekama u trenutnom direktoriju, jednostavno upišite:

Ako vam je teško zapamtiti ove dugačke komande, koristite malu skriptu koja se može preuzeti ovdje: grepfind.gz . Skripta također uklanja znakove koji se ne mogu ispisati iz stringa za pretraživanje tako da slučajno ne dobijete binarnu datoteku kao rezultat egrep pretrage.

Veoma zanimljiv program pretraga - agrep . Agrep u osnovi radi kao egrep, ali vam omogućava da pretražujete na osnovu pravopisnih pogrešaka. Da biste tražili izraz i dozvolili najviše 2 pravopisne greške, upišite:

Nakon toga, možete tražiti string u svim datotekama koje su prethodno bile indeksirane

pogled -i -2 "izraz pretraživanja"

glimpse takođe dozvoljava pravopisne greške (kao i agrep), a -2 označava da su dozvoljene dve greške. pogled je dostupan na

    Pronađite datoteku po njenom imenu. Takve najjednostavnija pretraga izvršeno pomoću uslužnog programa find. Naredba u nastavku će tražiti datoteku u trenutnom direktoriju i svim njegovim poddirektorijumima.

    find -iname "ime datoteke"

    • Upišite -iname umjesto -name da zanemarite velika i mala slova u unesenom nazivu datoteke. Naredba -name je osjetljiva na velika i mala slova.
  1. Počnite tražiti u korijenskom direktoriju. Da biste započeli pretragu širom sistema, dodajte modifikator / u upit. U ovom slučaju, naredba find će tražiti datoteku u svim direktorijima, počevši od korijena.

    pronađi / -iname "ime datoteke"

    • Možete započeti pretraživanje u određenom direktoriju; da biste to učinili, zamijenite / s putanjom direktorija, na primjer, /home/max .
    • Može biti korišteno. umjesto / da samo traži datoteku u trenutnom direktoriju i njegovim poddirektorijumima.
  2. Koristite zamjenski znak.* za pronalaženje datoteka čije ime odgovara dijelu upita. Možete koristiti zamjenski znak * da pronađete datoteku čije puno ime nije poznato ili da pronađete sve datoteke sa određenim ekstenzijom.

    pronađi /home/max -iname "*.conf"

    • Ova komanda će pronaći sve .conf fajlove u korisnikovom Max folderu (i njegovim podfolderima).
    • Koristite ovu naredbu da pronađete sve datoteke čija imena odgovaraju dijelu upita. Na primjer, ako vaš računar ima mnogo datoteka povezanih s WikiHow-om, potražite sve datoteke upisivanjem "*wiki*" .
  3. Olakšajte upravljanje rezultatima pretraživanja. Ako ima previše rezultata pretraživanja, teško je pronaći među njima željeni fajl. Koristite simbol | tako da se rezultati pretrage filtriraju naredbom less. Ovo će olakšati pregled i filtriranje rezultata pretraživanja.

    pronađi /home/max -iname "*.conf" | manje

    Pronađite određene stavke. Koristite modifikatore da prikažete samo određene stavke u rezultatima pretraživanja. Možete tražiti obične datoteke (f), direktorije (d), simboličke veze (l), znakovne I/O uređaje (c) i blok uređaje (b).

    pronađi / -type f -iname "ime datoteke"

  4. Filtrirajte rezultate pretrage prema veličini datoteke. Ako vaš računar ima mnogo datoteka sa sličnim nazivima, ali znate veličinu datoteke koju tražite, filtrirajte rezultate pretraživanja prema veličini datoteke.

    find / -size +50M -iname "filename"

    • Ova komanda će pronaći sve datoteke veće od 50MB. Koristite modifikator + ili - da označite povećanje ili smanjenje veličine. Ako nema modifikatora + ili -, komanda će pronaći datoteke koje tačno odgovaraju navedenoj veličini.
    • Rezultati pretrage se mogu filtrirati prema bajtovima (c), kilobajtima (k), megabajtima (M), gigabajtima (G) ili blokovima od 512 bajtova (b). Imajte na umu da su gornji modifikatori osjetljivi na velika i mala slova.
  5. Koristi logički operatori(boolean operatori) za kombinovanje filtera pretrage. Možete koristiti -and , -ili , -not operatore da kombinujete različite pojmovi za pretragu u jednom zahtevu.

    pronađi /travelphotos -tip f -veličina +200k -ne -iname "*2015*"

    • Ova komanda će pronaći datoteke u folderu "Travelphotos" koje su veće od 200 KB i nemaju broj 2015 u nazivu.

Ovo je podrazumevana stranica dobrodošlice koja se koristi za testiranje ispravnog rada Apache2 servera nakon instalacije na Ubuntu sistemima. Bazira se na ekvivalentnoj stranici na Debianu, iz koje je izvedeno Ubuntu Apache pakiranje. Ako možete pročitati ovu stranicu, to znači da Apache HTTP server instaliran na ovoj stranici radi ispravno. Trebao bi zamijenite ovaj fajl(nalazi se na /var/www/html/index.html) pre nego što nastavite sa radom na vašem HTTP serveru.

Ako ste običan korisnik ove web stranice i ne znate o čemu se radi, to vjerovatno znači da je stranica trenutno nedostupna zbog održavanja. Ako se problem nastavi, obratite se administratoru stranice.

Pregled konfiguracije

Ubuntuova zadana konfiguracija Apache2 razlikuje se od zadane konfiguracije uzvodno i podijeljena je u nekoliko datoteka optimiziranih za interakciju sa Ubuntu alatima. Konfiguracijski sistem je potpuno dokumentirano u /usr/share/doc/apache2/README.Debian.gz. Pogledajte ovo za kompletnu dokumentaciju. Dokumentaciju za sam web server možete pronaći pristupom priručniku ako je na ovom serveru instaliran paket apache2-doc.

Izgled konfiguracije za instalaciju Apache2 web servera na Ubuntu sistemima je sljedeći:

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf |-- sites-enabled | `-- *.conf

  • apache2.conf je glavna konfiguraciona datoteka. On spaja dijelove tako što uključuje sve preostale konfiguracijske datoteke prilikom pokretanja web servera.
  • ports.conf je uvijek uključen iz glavne konfiguracijske datoteke. Koristi se za određivanje portova za slušanje za dolazne veze, a ovaj fajl se može prilagoditi bilo kada.
  • Konfiguracijske datoteke u direktorijima mods-enabled/ , conf-enabled/ i sites-enabled/ sadrže određene konfiguracijske isječke koji upravljaju modulima, fragmentima globalne konfiguracije, odnosno konfiguracijama virtualnog hosta.
  • Aktiviraju se simboličnim povezivanjem dostupnih konfiguracijskih datoteka iz njihovih odgovarajućih *-available/ parnjaka. Njima treba upravljati korištenjem naših pomoćnika a2enmod, a2dismod, a2ensite, a2dissite i a2enconf, a2disconf. Pogledajte njihove odgovarajuće man stranice za detaljne informacije.
  • Binarna datoteka se zove apache2. Zbog upotrebe varijabli okruženja, u standardnoj konfiguraciji, apache2 treba pokrenuti/zaustaviti pomoću /etc/init.d/apache2 ili apache2ctl. Direktno pozivanje /usr/bin/apache2 neće raditi sa podrazumevanom konfiguracijom.

Document Roots

Podrazumevano, Ubuntu ne dozvoljava pristup preko web pretraživača bilo koji fajl osim onih koji se nalaze u /var/www , public_html direktorijumima (kada je omogućeno) i /usr/share (za web aplikacije). Ako vaša stranica koristi korijen web dokumenta koji se nalazi negdje drugdje (kao što je /srv), možda ćete morati staviti na bijelu listu korijenski direktorij dokumenta u /etc/apache2/apache2.conf .

Podrazumevani korijen Ubuntu dokumenta je /var/www/html. Možete napraviti vlastite virtuelne hostove pod /var/www. Ovo se razlikuje od prethodnih izdanja što pruža bolju sigurnost iz kutije.

Izvještavanje o problemima

Molimo koristite alat ubuntu-bug da prijavite greške u Apache2 paketu sa Ubuntuom. Međutim, provjerite prije nego što prijavite novu grešku.

Molimo prijavite greške specifične za module (kao što su PHP i drugi) njihovim odgovarajućim paketima, a ne samom web serveru.

Bez sumnje, kada radite sa Linuxom, ponekad to postaje neophodno pretraga fajlova sa određenim karakteristikama. Ove karakteristike mogu biti veličina ili tip datoteke, dozvole i još mnogo toga.


Dostupnost u Linux komande naći puno pomaže u rješavanju pretraga fajlova prema raznim kriterijumima.


Danas ćemo analizirati pretražite fajlove u linuxu i dajte glavne opcije komande naći koje možete primijeniti u svom radu.

Format komande naći:

naćinačin-opcije

gdje način je direktorij za pretraživanje. Možete odrediti sljedeće vrijednosti za putanju:

. - pretraga u trenutnom imeniku;

/ - pretraživanje iz korijenskog direktorija;

~ - traži u početnom imeniku.

Što se tiče opcija, ovdje je mnogo veća lista koju je izuzetno potrebno pažljivo pročitati (ovo će vam puno pomoći u budućnosti!). dakle, osnovne opcije naredbe find:

-ime- pretraživati ​​fajlove po imenu koristeći dati šablon;

-korisnik- traženje datoteka koje pripadaju navedenom korisniku;

-grupa- traženje datoteka koje pripadaju navedenoj grupi;

-perm- traženje datoteka sa navedenim načinom pristupa;

-tip- traženje datoteka određene vrste. Dovoljne su i vrste:

  • b - posebna blok datoteka;
  • d - imenik;
  • c je datoteka posebnih znakova;
  • f - običan fajl;
  • l - simbolička veza;
  • p - imenovana cijev;
  • s - utičnica.
-veličina- traženje datoteka veličine n jedinica;

-mvrijeme -n +n- potražite fajlove čiji se sadržaj promijenio prije manje od (-) ili više od (+) dana.

Razmotrite neke primjeri upotrebe naredbi naći :

Najčešće korištena opcija je opcija -ime, koji traži datoteke po imenu.

Primjeri s opcijom -name :

$ pronađi /mnt/usb -name "*.mp3" -print

će tražiti sve datoteke (označene znakom *) koje imaju ekstenziju .mp3 na USB uređaju montiranom u /mnt/usb direktorij.

$ find ~ -name "test*" -print

će prikazati listu datoteka u početnom direktoriju koja počinje sa test.

Ako trebate pronaći datoteke koje počinju određenim slovima (na primjer, od a do j), tada će ovdje biti zgodno koristiti regularne izraze, koji su izuzetno praktični za rad:

$ find / -name "*" -print

Gornja komanda će pronaći sve datoteke na sistemu počevši od slova od a do j.

Pronalaženje datoteka sa određenim načinima pristupa

Ako trebate pronaći datoteke koje imaju određene načine pristupa, možete koristiti opciju -perm koji će vam lako pomoći.

Na primjer, tražimo datoteke s načinom pristupa 775 (vlasnik i grupa imaju puna prava, drugi korisnici imaju ograničenja pisanja) koji se nalaze u trenutnom direktoriju:

$ naći. -perm 775 -print

Pretraživanje sa naći sa opcijom -perm, možete koristiti drugi način - možete staviti crticu ispred vrijednosti moda i tada će se izvršiti pretraga datoteka za koje su postavljeni svi navedeni bitovi dozvole. Štaviše, preostali bitovi se u ovom slučaju zanemaruju.

Na primjer, pronađimo datoteke kojima korisnici grupe imaju potpuni pristup:

$ naći. -perm -070 -print

Umjesto crtice, možete navesti znak plus. U ovom slučaju, tražit će datoteke koje imaju postavljen barem jedan od specificiranih bitova dozvole. Ostali bitovi se zanemaruju.

Potražite datoteke određenog korisnika ili grupe

Pretraživanje datoteka određenog korisnika izuzetno je jednostavno u implementaciji. Da biste to učinili, samo pokrenite naredbu:

$ find / -user admin -print

Gornja komanda će proizvesti pretraga fajlova na sistemu u vlasništvu korisnika administratora.

Da biste pronašli datoteke koje pripadaju određenoj grupi (na primjer, menadžeri), pokrenite naredbu:

$ pronađi / -menadžeri grupe -print

Za traženje datoteka nepostojećih korisnika ili grupa, možete koristiti opcije -nouser I -nogroup:

$ find / -nouser -print

$ find / -nogroup -print

Potražite datoteke određene vrste

Jedna od zgodnih karakteristika komande naći, je mogućnost pretraživanja datoteka određenog tipa. Razmotrite opcije za korištenje opcije -tip:

Traženje simboličkih veza u /etc direktoriju:

$ pronađi /etc -type l -print

Prikaz liste direktorija prisutnih u /mnt/raid direktoriju

$ pronađi /mnt/raid -tip d -print

Potražite datoteke određene veličine

Opcija -veličina omogućava vam da tražite datoteke određene veličine i izgleda ovako kada se izvrši:

$ naći. -veličina 2000k -štampa

Gornja komanda će pronaći i prikazati datoteke od 2 megabajta koje se nalaze u trenutnom direktoriju na ekranu. Ako, na primjer, trebate pronaći datoteke manje od 500 kilobajta, tada će naredba izgledati ovako:

$ naći. -veličina -500k -štampa

Ako trebate pronaći datoteke veće od 600 megabajta, koristite naredbu:

$ pronađi / -veličina +600M -print

Traženje datoteka pomoću opcije -mtime

Opcija -mtimeće vam omogućiti da pronađete datoteke koje su se mijenjale tokom vremena.

Na primjer, bili smo suočeni sa zadatkom traženja datoteka koje se nalaze u /mnt/raid/upload direktoriju koje su se promijenile u proteklih 5 dana. Ova komanda će nam pomoći:

$ pronađi /mnt/raid/upload -mtime -5 -print

Ako nam je potrebno suprotno, na primjer, da pronađemo fajlove koji se nisu mijenjali tjedan dana, koristimo naredbu:

$ pronađi /mnt/raid/upload -7 -print

Zapovjedi naći je izuzetno zgodan alat za pretraga fajlova a može se koristiti i za pretraga fajlova na NFS diskovima (mrežni sistem datoteka), ali u ovom slučaju se mora uzeti u obzir da će za pretragu nečega na NFS-u biti potrebno mnogo više vremena nego na lokalnim diskovima.

U ovom članku smo pokrili samo osnovne opcije naredbe find koje će vam pomoći u radu. Koristite ono što je zgodno i ne brinite o sitnicama!

Potreba za traženjem datoteka može se pojaviti u gotovo svakom operativnom sistemu koji vam omogućava rad sistem podataka. Klasičan primjer za nas je operativni sistem Linux, koji ćemo koristiti u konzolnom modu. Pogledajmo mogućnosti pretraživanja datoteka u sistemu preko konzole. Za pretraživanje datoteka na Linux sistemu postoji naredba find koja vam omogućava da izvršite prilično fleksibilno pretraživanje, što vam omogućava da odredite dodatne kriterije pretraživanja. Razmotrimo mogućnosti ove naredbe detaljnije.

Pronađite sintaksu komande:

Pronađite opcije putanje

Putanja specificira direktorij u kojem se traži. Na primjer, to mogu biti vrijednosti poput ove:
. - trenutni imenik
/ - korijenski direktorij
~ - početni imenik

Nakon specificiranja putanje, ovako se specificiraju opcije pretraživanja. Izgleda zbunjujuće, ali u stvari nema poteškoća.

Glavne opcije:
-ime- pretraga po nazivu, obrazac pretrage je postavljen;
-korisnik- traženje datoteka koje pripadaju određenom korisniku;
-grupa- traženje datoteka koje pripadaju određenoj grupi;
-perm- traženje datoteka po načinu pristupa;
-tip- traži fajlove po tipu, listu tipova:

  • b- poseban blok fajl;
  • d- katalog;
  • c- fajl posebnih znakova;
  • f- normalni fajl;
  • l- simbolička veza;
  • str- imenovana cijev;
  • s- utičnica.

-veličina- traženje datoteka veličine n jedinica;
-mvrijeme -n +n- traži datoteke po datumu izmjene, prije manje (-) ili više (+) dana.

Pokušajmo potražiti datoteke, simulirajući različite situacije.
Pronađimo datoteke na prenosivom uređaju spojenom na USB i prethodno montiranom u sistemu.

Pretraži fajlove po ekstenzijama:

$ pronađi /mnt/usb -name "*.mp3" -print

Ova komanda će pretražiti direktorij /mnt/usb je direktorij u koji je uređaj montiran. Pretraživanje će se izvršiti na svim datotekama (*) sa ekstenzijom .mp3.
Maska za pretraživanje se može mijenjati prilično fleksibilno, na primjer, možete postaviti ključnu riječ s kojom počinje naziv datoteke i pretražiti je.

Pretražite fajlove po ključnoj riječi start:

$ find ~ -name "config*" --print

Ovo će prikazati listu pronađenih fajlova koji počinju sa ključna riječ config.
Jedan od snage komande je mogućnost pretraživanja prema regularnom izrazu. Da bismo demonstrirali, tražimo datoteke koje počinju latiničnim slovima od "a" do "j".

Pretražite fajlove po obrascu regularnog izraza:

$ find / -name "*" --print

Prema navedenom obrascu, pretražit će se svi fajlovi u sistemu koji počinju slovima od "a" do "j".

Svako ko je manje-više upoznat sa Linux sistemima zna da su načini pristupa datotekama veoma važni. Ponekad morate pronaći datoteke koje imaju određene dozvole, u tu svrhu možete koristiti pretragu sa opcijom -perm.

Potražite fajlove sa načinom pristupa 755:

$ find . -perm 775 --print

Na isti način možete napraviti fleksibilniju pretragu. Pronađimo fajlove po grupama korisnika koji imaju puni pristup.

Potražite fajlove sa dozvolama za grupu:

$ find . -perm -070 --print

Znak crtice se može zamijeniti znakom plus, ovo će tražiti datoteke koje imaju postavljen barem jedan od datih bitova dozvole, a ostali bitovi će biti zanemareni.

U sljedećem primjeru razmislite o traženju datoteka u vlasništvu određenog korisnika ili grupe.

Potražite fajlove određenog korisnika:

$ find / -user admin --print

Pretraga će pronaći fajlove u vlasništvu korisnika admin.

Potražite fajlove koji pripadaju određenoj grupi korisnika:

$ find / -group botovi --print

Biće pronađeni fajlovi koji pripadaju grupi korisnika botovi. Osim toga, možete pretraživati ​​fajlove u vlasništvu nepostojećih korisnika ili grupa:

$ find / -nouser –print $ find / -nogroup –print

Mogućnost pretraživanja određenih tipova datoteka također je važna funkcionalnost. Na primjer, ako postoji potreba za pronalaženjem svih simboličkih veza u određenom direktoriju.

Traži simboličke veze:

$ find /etc -type l --print

Pretraga će se izvršiti u direktoriju /etc, u kojem će biti odabrane sve simbolične veze.

Ponekad je potrebno pogledati listu ugniježđenih direktorija u bilo kojem direktoriju, za takve zadatke postoji sljedeća naredba.

Pogledajte ugniježđene direktorije u direktoriju:

$ pronađi /mnt/usb -tip d --print

Na ekranu će se prikazati lista direktorija prisutnih u imeniku. /mnt/usb. Sada idemo na sljedeću opciju, ovo je mogućnost pretraživanja datoteka određene veličine.

Pretražite fajlove po veličini:

$ find . -veličina 2000k --print

Pretražit će se datoteke veličine 2000 kilobajta, veličine se mogu odrediti i u megabajtima, za to umjesto slova "k" treba navesti slovo "M".

Kao sljedeći primjer, koristit ćemo mogućnost pretraživanja datoteka prema vremenu njihove izmjene. U tu svrhu ćemo koristiti opciju –mtime.

Potražite fajlove izmijenjene u posljednja 2 dana:

$ find /var/www/html -mtime +2 --print

Pretraga će se izvršiti u imeniku /var/www/html, i pretraživaće se datoteke koje su se promijenile u posljednja 2 dana. Možda jedna od najvažnijih i najprikladnijih opcija pretraživanja. Također možete pretraživati ​​po datumu izmjene sa suprotnim uslovom. Pokušajmo pronaći datoteke u direktoriju koji se nisu promijenili 5 dana.

Potražite fajlove koji se nisu mijenjali 5 dana:

$ find /var/www/html -5 --print

To je sve za sada, nadam se da su vam ovi primjeri pomogli da se nosite s ovom komandom. Njegova pogodnost je jasno predstavljena i neće biti suvišno znati o njegovim mogućnostima, pogotovo ako ćete raditi sa Linux sistem. Vještine kompetentnog pretraživanja datoteka štedi vaše lično vrijeme, a kao što znate, vrijeme je neprocjenjivo. Uspjesi u radu!