Pronađite naziv datoteke. Naredba find i njene opcije prikazane su u primjerima. Primjeri korištenja find

Ovo je podrazumevana stranica dobrodošlice koja se koristi za testiranje ispravnog rada Apache2 servera nakon instalacije na Ubuntu sistemima. Zasnovan je 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 prethodno zadane konfiguracije i podijeljena je u nekoliko datoteka optimiziranih za interakciju sa Ubuntu alatima. potpuno dokumentirano u /usr/share/doc/apache2/README.Debian.gz. Pogledajte ovo za kompletnu dokumentaciju. Dokumentacija za web server sam se može pronaći pristupom priručniku ako je paket apache2-doc instaliran na ovom serveru.

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) odgovarajućim paketima, a ne samom web serveru.

Dok radite na bilo kojem operativnom sistemu, ponekad postoji potreba za korištenjem alata brza pretraga ovaj ili onaj fajl. Ovo je također relevantno za Linux, tako da će sve biti razmotreno u nastavku mogući načini potražite fajlove u ovom OS. Biće predstavljeni kao alati file manager, i komande koje se koriste u "terminal".

Ako trebate navesti mnogo parametara pretraživanja da biste pronašli datoteku koja vam je potrebna, onda naredba naći nezamjenjiv. Prije nego što razmotrite sve njegove varijacije, vrijedi proći kroz sintaksu i opcije. Ima sljedeću sintaksu:

opcija pronalaženja putanje

Gdje put- ovo je direktorij u kojem će se izvršiti pretraga. Postoje tri glavne opcije za određivanje putanje:

  • / — pretraživanje u korijenskom i susjednom direktoriju;
  • ~ — pretraživanje po matičnom imeniku;
  • ./ — pretražite imenik u kojem se korisnik trenutno nalazi.

Također možete odrediti putanju direktno do samog direktorija u kojem se datoteka navodno nalazi.

Opcije naći ima puno, a zahvaljujući njima možete izvršiti fleksibilne postavke pretraživanja postavljanjem potrebnih varijabli:

  • -ime- izvršite pretragu koristeći naziv elementa koji tražite kao osnovu;
  • -korisnik- traženje datoteka koje se odnose na određenog korisnika;
  • -grupa- traženje određene grupe korisnika;
  • -perm- prikaz datoteka sa navedenim načinom pristupa;
  • -veličina n- pretraga na osnovu veličine objekta;
  • -mtime +n -n- potražite fajlove koji su promijenjeni više od ( +n) ili manje ( -n) prije dana;
  • -tip- traženje datoteka određene vrste.

Postoje i mnoge vrste elemenata koje tražite. Evo njihove liste:

  • b- blok;
  • f- obični;
  • str- imenovana cijev;
  • d- katalog;
  • l- veza;
  • s- utičnica;
  • c- simbolično.

Nakon detaljne analize sintakse naredbi i opcija naći Možete ići direktno na ilustrativne primjere. Zbog obilja opcija za korištenje naredbe, primjeri neće biti dati za sve varijable, već samo za one najčešće korištene.

Metoda 1: Pretraživanje po imenu (opcija -name)

Korisnici najčešće koriste opciju pretraživanja sistema -ime, dakle, tu ćemo početi. Pogledajmo nekoliko primjera.

Pretraga po ekstenzijama

Recimo da trebate pronaći datoteku na sistemu sa ekstenzijom ".xlsx", koji se nalazi u imeniku "Dropbox". Da biste to učinili potrebno je da koristite sljedeću naredbu:

pronađi /home/user/Dropbox -name "*.xlsx" -print

Iz njegove sintakse možemo reći da se pretraga vrši u imeniku "Dropbox" ("/home/user/Dropbox"), a željeni objekt mora imati ekstenziju ".xlsx". Zvjezdica označava da će se pretraga izvršiti na svim datotekama ove ekstenzije, bez uzimanja u obzir njihovog imena. "-print" označava da će biti prikazani rezultati pretrage.

Traži po imenu datoteke

Na primjer, želite pretraživati ​​u imeniku "/Dom" fajl sa imenom "grudice", ali njegovo proširenje nije poznato. U ovom slučaju morate učiniti sljedeće:

find ~ -name "lumpics*" -print

Kao što vidite, simbol koji se ovdje koristi je «~» , što znači da će se pretraga odvijati u početnom imeniku. Nakon opcija "-ime" naznačen je naziv tražene datoteke ( "grudice*"). Zvjezdica na kraju znači da će se pretraga izvršiti samo po imenu, bez uzimanja u obzir ekstenzije.

Traži po prvom slovu imena

Ako se sjećate samo prvog slova imena datoteke, postoji posebna sintaksa komande koja će vam pomoći da je pronađete. Na primjer, želite pronaći datoteku koja počinje slovom od "g" prije "l", a ne znate u kojem direktoriju se nalazi. Zatim morate pokrenuti sljedeću naredbu:

find / -name "*" -print

Sudeći po simbolu “/” koji dolazi odmah nakon glavne naredbe, pretraga će se vršiti počevši od korijenskog direktorija, odnosno kroz cijeli sistem. Sledeći deo «*» znači da će tražena riječ početi određenim slovom. U našem slučaju od "g" prije "l".

Usput, ako znate ekstenziju datoteke, onda nakon simbola «*» možete to naznačiti. Na primjer, morate pronaći isti fajl, ali znate da ima ekstenziju ".odt". Tada možete koristiti ovu naredbu:

find / -name "*.odt" -print

Metoda 2: Pretraživanje prema načinu pristupa (opcija -perm)

Ponekad morate pronaći objekat čije ime ne znate, ali znate koji način pristupa ima. Zatim morate koristiti opciju "-perm".

Prilično je jednostavan za korištenje; samo trebate navesti lokaciju pretraživanja i način pristupa. Evo primjera takve naredbe:

pronaći ~ -perm 775 -print

Odnosno, pretraga se vrši u početnoj sekciji, a objekti koji se pretražuju će imati pristup 775 . Također možete napisati simbol “-” ispred ovog broja, tada će pronađeni objekti imati bitove dozvole od nule do određene vrijednosti.

Metoda 3: Pretraživanje po korisniku ili grupi (opcije -korisnik i -grupa)

Svaki operativni sistem ima korisnike i grupe. Ako želite pronaći objekt koji pripada jednoj od ovih kategorija, možete koristiti opciju "-korisnik" ili "-grupa", odnosno.

Pronađite datoteku prema njenom korisničkom imenu

Na primjer, trebate pronaći u imeniku "Dropbox" fajl "lampe", ali ne znate kako se zove, samo znate da pripada korisniku "korisnik". Zatim morate pokrenuti sljedeću naredbu:

pronađi /home/user/Dropbox -user user -print

U ovoj naredbi ste naveli potreban direktorij ( /home/user/Dropbox), naznačio je da trebate potražiti datoteku koja pripada korisniku ( -korisnik), i naznačio kojem korisniku pripada ovaj fajl ( korisnik).

Traženje datoteke po imenu grupe

Traženje datoteke koja pripada određenoj grupi je isto tako jednostavno - samo trebate zamijeniti opciju "-korisnik" na opciju "-grupa" i navedite naziv ove grupe:

pronađi / -grupi gost -ispis

To jest, naznačili ste da želite pronaći datoteku u sistemu koja pripada grupi "gost". Pretraživanje će se odvijati u cijelom sistemu, što je označeno simbolom «/» .

Metoda 4: Potražite datoteku prema njenom tipu (opcija -type)

Pronalaženje elementa određene vrste u Linuxu je prilično jednostavno, samo trebate navesti odgovarajuću opciju ( -tip) i odredite tip. Na početku članka navedene su sve oznake tipa koje se mogu koristiti za pretraživanje.

Na primjer, želite pronaći sve blok datoteke u vašem početnom direktoriju. U ovom slučaju vaša naredba bi izgledala ovako:

find ~ -type b -print

U skladu s tim, naznačili ste da pretražujete po tipu datoteke, o čemu svjedoči opcija "-tip", a zatim odredio njen tip stavljanjem simbola blok datoteke - "b".

Na isti način možete prikazati sve direktorije u željenom direktoriju unošenjem simbola u naredbu "d":

pronađi /home/user -type d -print

Metoda 5: Pretražite fajl po veličini (opcija -size)

Ako je sve što znate o datoteci njena veličina, čak i to može biti dovoljno da je pronađete. Na primjer, želite da pronađete datoteku od 120 MB u određenom direktoriju, da biste to učinili, učinite sljedeće:

pronađi /home/user/Dropbox -veličina 120M -print

Kao što vidite, fajl koji nam je potreban je pronađen. Ali ako ne znate u kojem se direktoriju nalazi, možete pretražiti cijeli sistem tako što ćete navesti korijenski direktorij na početku naredbe:

pronađi / -veličina 120M -print

Ako znate približnu veličinu datoteke, onda postoji posebna komanda za ovaj slučaj. Morate se registrovati "terminal" ista stvar, samo stavite znak prije označavanja veličine datoteke «-» (ako trebate pronaći datoteke manje od navedene veličine) ili «+» (ako je veličina datoteke koju tražite veća od navedene veličine). Evo primjera takve naredbe:

pronađi /home/user/Dropbox +100M -print

Metoda 6: Pronađite datoteku prema datumu izmjene (opcija -mtime)

Postoje trenuci kada je najpogodnije tražiti datoteku prema datumu kada je izmijenjena. Na Linuxu se to radi pomoću opcije "-mtime". Prilično je jednostavan za korištenje, pogledajmo sve na primjeru.

Recimo u folderu "slike" moramo pronaći objekte koji su bili podložni promjenama u posljednjih 15 dana. Evo šta treba da upišete "terminal":

pronađi /home/user/Images -mtime -15 -print

Kao što vidite, ova opcija prikazuje ne samo datoteke koje su se promijenile tokom navedenog perioda, već i foldere. Radi i u suprotnom smjeru - možete pronaći objekte koji su promijenjeni nakon navedenog datuma. Da biste to učinili, morate unijeti znak ispred digitalne vrijednosti «+» :

pronađi /home/user/Images -mtime +10 -print

GUI

Grafičko sučelje znatno olakšava život početnicima koji su upravo instalirali Linux distribucija. Ova metoda pretraga je vrlo slična onoj u Windows-u, iako ne može pružiti sve prednosti koje nudi "terminal". Ali prvo stvari. Dakle, pogledajmo kako tražiti datoteke u Linuxu koristeći grafičko sučelje sistema.

Metod 1: Pretražujte kroz sistemski meni

Sada ćemo pogledati kako pretraživati ​​datoteke kroz meni Linux sistemi. Preduzete radnje će se izvoditi u distribuciji Ubuntu 16.04 LTS, ali uputstva su zajednička za sve.

Ovaj članak je odlomak iz knjige " Linux&Unix - programiranje u Shell-u", David Tansley.

Malo sam u žurbi napravio izmjene, ako primijetite bilo kakvu grešku u kucanju, napišite u komentarima.

Često tokom rada postoji potreba za traženjem fajlova sa određenim karakteristikama, kao što su prava pristupa, veličina, tip itd. Naredba find je univerzalni alat za pretraživanje: omogućava vam da pretražujete datoteke i direktorije, pregledate sve direktorije na sistemu ili samo trenutni direktorij.

Ovo poglavlje pokriva sljedeće teme vezane za korištenje naredbe find:

pronađite opcije komandi;

Primjeri korištenja različitih opcija naredbe find;

Primjeri zajedničkog korištenja naredbi xargs i find.

Mogućnosti komande find su opsežne, a lista ponuđenih opcija je velika. Ovo poglavlje opisuje najvažnije od njih. Naredba find može čak pretraživati ​​diskove NFS (Mrežni sistem datoteka- mrežni sistem datoteka), naravno, ako imate odgovarajuće dozvole. IN sličnim slučajevima naredba se obično izvršava u pozadini, jer pregledavanje stabla direktorija oduzima mnogo vremena. Opšti format naredbe find je:

naći path_name -opcije

Gdje path_name- ovo je direktorij iz kojeg treba započeti pretragu. Znak '.' se koristi za označavanje trenutnog direktorija, znak / je osnovni direktorij, a znak "~" je onaj koji je pohranjen u varijabli. $HOME početni direktorij trenutni korisnik.

2.1. pronađite opcije komande

Hajde da se zadržimo na opisu glavnih opcija naredbe find.

Ime Traži datoteke čija imena odgovaraju datom uzorku

Print Zapisuje puna imena pronađenih datoteka u standardni izlaz

Perm Traženje datoteka za koje je postavljen specificirani način pristupa

Prune Ovo se koristi da spriječi naredbu find da izvrši rekurzivno pretraživanje na nazivu putanje koji je već pronađen; ako je navedena opcija -depth, opcija -prune se zanemaruje

Korisnik Traži datoteke u vlasništvu određenog korisnika

Grupa Traži datoteke koje pripadaju datoj grupi

Mtime -n +n Tražite fajlove čiji je sadržaj izmijenjen manje od (-) ili više od (+) n dana prije; Postoje i opcije -atime i -ctime, koje vam omogućavaju da tražite datoteke prema datumu posljednjeg čitanja i datumu posljednje promjene atributa datoteke

Nogroup Traži datoteke koje pripadaju nepostojećoj grupi za koju, drugim riječima, ne postoji unos u datoteci /etc/groups

Nouser Pronalazi datoteke u vlasništvu nepostojećeg korisnika, za koje, drugim riječima, ne postoji unos u datoteci /etc/passwd

Novije fajl Potražite datoteke koje su kreirane kasnije od navedene datoteke

Tip Traži datoteke određene vrste, i to: b- poseban blok fajl; d- katalog; With- poseban fajl simbola; str- imenovana cijev; l- simbolička veza; s- utičnica; f- običan fajl

Veličina n Potražite datoteke čija je veličina n jedinice; Moguće su sljedeće mjerne jedinice: b- veličina bloka 512 bajtova (podrazumevana postavka); With- bajt; k- kilobajt (1024 bajta); w- dvobajtna riječ

Dubina Prilikom traženja datoteka prvo se gleda sadržaj trenutnog direktorija, a tek onda se provjerava unos koji odgovara samom direktoriju

F tip Traži datoteke koje se nalaze u sistemu datoteka određenog tipa; Obično se relevantne informacije pohranjuju u datoteku /etc/fstab, koji sadrži podatke o sistemima datoteka koji se koriste na lokalnom računaru

Mount Traži datoteke samo u trenutnom sistemu datoteka; Ekvivalent ovoj opciji je opcija -xdev -exec Izvrši naredbu tumača školjka za sve otkrivene datoteke; izvršene naredbe imaju naredbu format ( );

(obratite pažnju na razmak između znakova () i 😉

U redu Slično kao -exec, ali prikazuje prompt prije izvršavanja naredbe

2.1.1. Opcija -ime

Prilikom rada sa naredbom find najčešće se koristi opcija -name. Mora biti praćen uzorkom naziva datoteke u navodnicima.
Ako trebate pronaći sve datoteke sa ekstenzijom . poruka u vašem početnom direktoriju, navedite simbol kao ime putanje. Ime početnog direktorija će biti izdvojeno iz varijable $HOME.

$ find ~ -name "*.txt" -print

Da biste pronašli sve datoteke sa ekstenzijom .poruka koji se nalazi u trenutnom direktoriju, koristite sljedeću naredbu:

$find. -name "*.txt" -print

Da biste pronašli sve datoteke u trenutnom direktoriju koje imaju barem jedno veliko slovo u svom nazivu, unesite sljedeću naredbu:

$find. -name "*" -print

Pronađite u katalogu /etc datoteke čija imena počinju znakovima " domaćin“, komanda dozvoljava

$ find /etc -name "hoat*" -print

Pretražite početni direktorij za sve datoteke sa ekstenzijom .poruka kao i datoteke čija imena počinju tačkom, naredba proizvodi

$ find ~ -name "*.txt" -print -o -name ".*" -print

Opcija -O je oznaka za logičku operaciju ILI. Ako se koristi, pored fajlova sa regularnim nazivima, naći će se i fajlovi čiji nazivi počinju tačkom.

Ako želite da navedete sve datoteke na sistemu koje nemaju ekstenziju, pokrenite naredbu u nastavku, ali budite oprezni jer može značajno usporiti sistem:

$ find / -name "*" -print

U nastavku je prikazano kako pronaći sve datoteke čija imena počinju malim slovima, nakon kojih slijede dva broja i ekstenzijom .poruka(Na primjer, akh37.xt):

$find. -name » [a-x] [a-x] . txt" -print

2.1.2. Opcija -perm

Opcija -perm vam omogućava da pronađete datoteke sa određenim načinom pristupa. Na primjer, za traženje datoteka s načinom pristupa 755 (bilo koji korisnik može ih pregledati i izvršiti, ali samo vlasnik ima pravo pisati) trebate koristiti sljedeću naredbu:

$find. -perm 755 -print

Ako umetnete crticu ispred vrijednosti moda, on će tražiti datoteke za koje su postavljeni svi navedeni bitovi dozvole, a preostali bitovi će biti zanemareni. Na primjer, sljedeća naredba traži datoteke kojima drugi korisnici imaju puni pristup:

$find. -perm -007 -print

Ako se znak plus unese prije vrijednosti načina, traže se datoteke za koje je postavljen barem jedan od navedenih bitova dozvole, a preostali bitovi se zanemaruju.

2.1.3. Opcija -šljiva

Kada ne želite da pretražujete određeni direktorijum, koristite opciju -prune. Ovo vas upućuje da prestanete tražiti na trenutnom nazivu putanje. Ako ime putanje ukazuje na direktorij, naredba find neće ići u njega. Ako je opcija -depth prisutna, opcija -prune se zanemaruje.

Sljedeća naredba pretražuje trenutni direktorij bez ulaska u poddirektorij /bin:

$find. -name "bin" -suha -o -print

2.1.4. Opcije -user i --nouser

Da biste pronašli datoteke u vlasništvu određenog korisnika, navedite opciju -user u naredbi find, nakon čega slijedi korisničko ime. Na primjer, traženje datoteka u početnom direktoriju u vlasništvu korisnika dave, izvodi se pomoću sljedeće naredbe:

$ find ~ -user dave -print

Pretražite katalog /etc datoteke u vlasništvu korisnika uucp, izvršava sljedeću naredbu:

$ pronađi /etc -uaer uucp -print

Zahvaljujući opciji -nouser, moguće je pretraživati ​​datoteke koje pripadaju nepostojećim korisnicima. Kada se koristi, vrši se pretraga datoteka čiji vlasnici nemaju unos u datoteci /etc/passwd. Nema potrebe za specificiranjem određenog korisničkog imena; naredba find sama obavlja sav potreban posao. Da biste pronašli sve datoteke koje su u vlasništvu nepostojećih korisnika i nalaze se u direktoriju /Dom, unesite ovu naredbu:

$ find /home -nouaer -print

2.1.5. Opcije -group i -nogroup

Opcije -group i -nogroup su slične -user-nouser/apps svih fajlova u vlasništvu korisnika u grupi accts:

$ pronađi /arra -group accta -print

Sljedeća naredba pretražuje cijeli sistem za datoteke koje pripadaju nepostojećim grupama:

$ find / -nogroup -print

2.1.6. Opcija -mtime

Opciju -mtime treba koristiti kada se traže datoteke kojima se pristupilo X prije dana. Ako je argument opcije opskrbljen znakom '-', bit će odabrane datoteke kojima se neko vrijeme nije pristupalo. X dana. Argument sa znakom '+' dovodi do suprotnog rezultata - odabiru se fajlovi kojima se pristupilo tokom posljednjeg X dana.

Sljedeća naredba vam omogućava da pronađete sve datoteke koje nisu ažurirane u posljednjih pet dana:

$ find / -mtime -5 -print

Ispod je naredba koja pretražuje direktorij /var/adm fajlovi koji su ažurirani u posljednja tri dana:

$ find /var/adm -mtime +3 -print

2.1.7. -noviju opciju

Ako trebate pronaći datoteke kojima je pristupljeno u vremenu između ažuriranja dvije navedene datoteke, koristite opciju -newer. Opšti format za njegovu primjenu je sljedeći:

Novije old_file! -noviji nova_datoteka

potpiši ' ! ' je operator logičke negacije. To znači: pronađite datoteke koje su novije od old_file, ali stariji od nova_datoteka.

Recimo da imamo dva fajla koji su ažurirani u razmaku od nešto više od dva dana:

Rwxr-xr-x 1 root root 92 tra 18 11:18 age.awk
-rwxrwxr-x 1 korijen root 1054 tra 20 19:37 belts.awk

Da biste pronašli sve datoteke koje su ažurirane kasnije od age.awk, ali ranije od belts.awk, pokrenite sljedeću naredbu (upotreba -exec opcije je opisana u nastavku):

$find. -new age.awk ! -noviji belts.awk -exec Is -1 () ;
-rwxrwxr-x 1 korijen root 62 18. tra 11:32 ./who.awk
-rwxrwxr-x 1 root root 49. tra 18 12:05 ./group.awk
-rw-r-r- 1 root root 201. tra 20. 19:30 ./grade2.txt
-rwxrwxr-x 1 korijen root 1054 20. tra 19:37 ./belts.awk

Ali šta ako trebate pronaći datoteke kreirane, recimo, u posljednja dva sata, ali nemate datoteku kreiranu prije točno dva sata za usporedbu? Napravite takav fajl! Za to je namijenjena naredba touch -t, koja kreira datoteku sa zadatom vremenskom oznakom u formatu MMDChhmm (mjesec-dan-sati-minute). Na primjer:

$ touch -t 05042140 dstamp
$ls -1 dstamp
-rw-r-r- 1 dave admin 0 4. svibnja 21:40 dstamp

Rezultat će biti datoteka čiji je datum kreiranja 4. maj, vrijeme kreiranja -21:40 (pod pretpostavkom da trenutno vrijeme- 23:40). Sada možete koristiti naredbu find s opcijom -newer da pronađete sve datoteke koje su ažurirane u posljednja dva sata:

$find. -novi datamp -print

2.1.8. Opcija -tip

OS UNIX I Linux podrška Razne vrste datoteke. Pretražite fajlove pravi tip urađeno pomoću naredbe, pronađite pomoću opcije -type. Na primjer, pronaći sve poddirektorije u direktoriju /etc koristite ovu naredbu:

$ pronađi /etc -type d -print

Za popis svih datoteka, ali ne i direktorija, pokrenite sljedeću naredbu:

$find. ! -tip d -print

Ispod je naredba koja je dizajnirana da pronađe sve simboličke veze u direktoriju /etc.

$ find /etc -type 1 -print

2.1.9. Opcija -veličina

Tokom procesa pretraživanja, veličina datoteke se specificira pomoću opcije -size N, Gdje N- veličina datoteke u blokovima od 512 bajtova. Mogući argumenti imaju sljedeća značenja: +N- traži fajlove čija je veličina veća od navedene, -N- manje od navedenog, N- jednako datoj. Ako argument dodatno specificira simbol With, tada se veličina smatra specificiranom u bajtovima, a ne u blokovima, i ako je znak k- u kilobajtima. Za pretraživanje datoteka čija veličina prelazi 1 MB, koristite naredbu

$find. -aize -flOOOk -print

Sljedeća naredba pretražuje direktorij /home/apache fajlovi čija je veličina tačno 100 bajtova:

$ find /home/apache -sixe 100s -print

Sljedeća naredba vam omogućava da tražite datoteke veće od 10 blokova (5120 bajtova):

$find. -veličina +10 -štampa

2.1.10. Opcija Opcija -dubina

Opcija -depth vam omogućava da organizirate pretragu na način da se prvo provjeravaju svi fajlovi trenutnog direktorija (i rekurzivno svi njegovi poddirektoriji), a tek na kraju - unos samog direktorija. Ova opcija se široko koristi kada se kreira lista datoteka za arhiviranje na traci pomoću naredbe cpio ili tar, jer se u ovom slučaju slika direktorija prvo upisuje na traku i tek onda se postavljaju prava pristupa njoj. Ovo omogućava korisniku da arhivira one direktorije za koje nema dozvolu za pisanje.
Sljedeća naredba navodi sve datoteke i poddirektorije trenutnog direktorija:

$find. -name "*" -print -o -name ".*" -print -dubina

Evo kako bi mogli izgledati rezultati njenog rada:

./.Xdefaults ./.bash_logout ./.bash_profile ./.bashrc ./.bash_nistory ./file ./Dir/filel ./Dir/file2 ./Dir/file3 ./Dir/Subdir/file4 ./Dir/Subdir . ./Dir

2.1.11. - opcija montiranja

Traži datoteke samo na trenutnom sistemu datoteka, isključujući druge montirane sistem datoteka, pruža opciju -mount za naredbu find. Sljedeći primjer traži sve datoteke sa ekstenzijom .xc na trenutnoj particiji diska:

$ find / -name "*.XC" -mount -print

2.1.12. Traženje datoteka i njihovo arhiviranje pomoću naredbe cpio

Komanda cpio se prvenstveno koristi za pisanje datoteka i čitanje sa trake. Vrlo često se koristi zajedno sa komandom find, primajući od nje listu datoteka putem cijevi.

Evo kako snimiti sadržaj direktorija na traku /etc, /Dom I /apps:

$cd/
$ find etc home appa -depth -print | cpio -ov > dev/rmtO

Opcija -O Komanda cpio specificira način za pisanje datoteka na traku. Opcija -v (verbose- verbalni način) je instrukcija cpio komandi da prijavi svaki fajl koji se obrađuje.

Imajte na umu da nazivi direktorija nemaju vodeći znak '/'. Na ovaj način se postavljaju relativni nazivi putanja arhiviranih direktorija, koji će, prilikom naknadnog čitanja datoteka iz arhive, omogućiti njihovo ponovno kreiranje u bilo kojem dijelu operativni sistem, a ne samo u korijenskom direktoriju.

2.1.13. Opcije -exec i -ok

Recimo da ste našli potrebne datoteke i žele da izvrše određene radnje u odnosu na njih. U ovom slučaju, trebat će vam opcija -exec (neki sistemi dozvoljavaju samo izvršavanje naredbi ls ili ls -1 s opcijom -exec). Mnogi korisnici koriste opciju -exec da pronađu stare datoteke za brisanje. Preporučujem da pokrenete ls umjesto rm kako biste bili sigurni da naredba find pronađe datoteke koje želite ukloniti.

Nakon opcije -exec, navedite naredbu koja će se izvršiti, praćenu vitičastim zagradama, razmakom, obrnutom kosom crtom i na kraju tačkom i zarezom. Pogledajmo primjer:

$find. -tip f -exec Xa -1 () ;
-rwxr-xr-x 10 korijenski kotač 1222 4. siječnja 1993. ./sbin/C80
-rwxr-xr-x 10 korijenski kotač 1222 4. siječnja 1993. ./sbin/Normal
-rwxr-xr-x 10 korijenski kotač 1222 4. siječnja 1993. ./sbin/Rewid

Ovo traži regularne datoteke, čija se lista prikazuje na ekranu pomoću komande ls -1.

Da biste pronašli datoteke koje nisu ažurirane u direktoriju /logs u posljednjih pet dana i uklonite ih, pokrenite sljedeću naredbu:

$ find /log" -type f -mtime +5 -exec rm () ;

Budite pažljivi kada premještate ili brišete datoteke. Koristite opciju -ok, koja vam omogućava da izvršite mv i rm komande u siguran način(prije obrade sljedećeg fajla, izdaje se zahtjev za potvrdu). U sljedećem primjeru, naredba find pronalazi datoteke sa ekstenzijom .log, a ako je datoteka kreirana prije više od pet dana, briše je, ali prvo traži od vas da potvrdite ovu operaciju:

$find. -name "*.LOG" -mtime +5 -ok rm () ;
< rm … ./nets.LOG >? at

Da obrišete fajl, unesite at, te da spriječimo ovu radnju - n.

2.1.14. Dodatni primjeri korištenja naredbe find

Pogledajmo još nekoliko primjera koji ilustriraju upotrebu naredbe find. Ispod je kako pronaći sve datoteke u vašem početnom direktoriju:

$ find ~ -print

Pronađite sve datoteke za koje je bit postavljen SUID, sljedeća naredba dozvoljava:

$find. -tip f -perm +4000 -print

Da biste dobili listu praznih fajlova, koristite ovu naredbu:

$ find / -type f -size 0 -exec Is -1 () ;

Jedan od mojih sistema svaki dan kreira dnevnik revizije sistema. Ime datoteke dnevnika dodaje se broj koji vam omogućava da odmah odredite koja je datoteka kreirana kasnije, a koja ranije. Na primjer, verzije datoteka admin.log redom numerisan: admin.log.001, admin.log.002 itd. Ispod je naredba find koja uklanja sve datoteke admin.log kreirano prije više od sedam dana:

$ find /logs -name ‘admin.log.1 -atima +7 exec rm () ;

2.2. xargs team

Sa opcijom -exec, naredba find prosljeđuje sve pronađene datoteke navedenoj komandi, koje se obrađuju u jednom trenutku. Nažalost, na nekim sistemima dužina komandne linije je ograničena, tako da prilikom obrade velikog broja datoteka možete dobiti poruku o grešci koja obično glasi: "Previše argumenata"(previše argumenata) ili "Predugački argumenti"(prevelika lista argumenata). U ovoj situaciji, komanda xargs dolazi u pomoć. Obrađuje datoteke primljene od komande find u komadima, a ne sve odjednom.

Razmotrimo primjer u kojem naredba find vraća listu svih datoteka prisutnih na sistemu, a naredba xargs pokreće naredbu datoteke na njima, provjeravajući tip svake datoteke:

$ find / -type f -print I xarge.file
/etc/protocols: engleski tekst /etc/securetty: ASCII tekst

Ispod je primjer koji pokazuje traženje dump datoteka čija imena komanda echo stavlja u datoteku /tmp/core.log.

$ find / -name core -print | xarge echo > /tmp/core.log

U sljedećem primjeru, u direktoriju /apps/audit traži sve datoteke kojima drugi korisnici imaju potpuni pristup. chmod naredba uklanja dozvolu za pisanje za njih:

$ pronađi /appe/audit -perm -7 -print | xarge chmod o-w

Našu listu zaokružuje primjer u kojem naredba grep traži datoteke koje sadrže riječ " uređaj«:

$ find / -type f -print | xarge grep "uređaj"

2.3. Zaključak

Naredba find je odličan alat za pretraživanje različitih datoteka koristeći širok raspon kriterija. Zahvaljujući opciji -exec, kao i komandi xargs, pronađene datoteke mogu se obraditi gotovo bilo kojom sistemskom naredbom.

Ako često radite u komandna linija na računaru ili serveru gde uopšte ne postoji grafička ljuska, pre ili kasnije ćete se suočiti sa zadatkom traženja datoteka. Srećom, Linux već ima ugrađenu komandu koja vam omogućava da pronađete datoteku na sistemu.

Danas ćemo razgovarati o korištenju naredbe find - vjerujte mi, vrijedno je naučiti kako raditi s ovim moćnim i praktičnim alatom.

Kako koristiti naredbu find

Jednostavno rečeno, osnovna sintaksa za naredbu find je sljedeća:

Pronađite /path parametre ime datoteke

Hajde da shvatimo mogućnosti tima

Potražite datoteku po imenu

Prvi parametar je putanja. Ako nemate pojma gdje se datoteka može sakriti, zamijenite putanju sa / - to je dovoljno. Međutim, pretraživanje cijelog diska može oduzeti dosta vremena i ako znate gdje se datoteka može nalaziti, navedite mapu iz koje želite započeti pretragu (na primjer, ~ za pretraživanje u korisničkom početnom folderu).

Sada pređimo na parametre pretrage. Postoje dvije opcije za pretraživanje fajla po imenu:

  • ime - traži naziv datoteke osjetljiv na velika i mala slova
  • iname - traži naziv datoteke bez obzira na velika i mala slova

Mora se imati na umu da je u Linuxu važno da je naziv datoteke važan, a ako trebate pronaći, na primjer, datoteku Ubuntu.txt, sljedeća naredba neće dati nikakve rezultate:

Pronađite / -name ubuntu.txt

Ali možete koristiti naredbu iname i izvršiti pretraživanje bez obzira na velika i mala slova:

Pronađite / -iname ubuntu.txt

Traži po vrsti

Naredba find vam omogućava da tražite više od samo datoteka. Evo tipova podrške za pretraživanje ručica:

  • f - obična datoteka
  • d - imenik
  • l - simbolična veza
  • c - karakterni uređaj
  • b - blok uređaj

Na primjer, da biste pronašli sve direktorije unutar kućnog direktorija trenutnog korisnika koji počinju s "config", pokrenite sljedeću naredbu:

Pronađite ~ -type d -name config*

Izlaz rezultata pretrage u datoteku

Zgodna funkcija izlaza rezultata naredbe u datoteku bit će izuzetno korisna ako ima puno rezultata pretraživanja ili postoji potreba da se kasnije radi s njima. Na primjer, da biste sačuvali listu svih pronađenih konfiguracijske datoteke da fajl conf_search, pokrenite sljedeću naredbu:

Pronađite /etc -type f -name “*.conf” > conf_search

Pretražite fajlove po veličini

Ovo je vrlo korisna opcija kada vam ponestaje prostora na disku i morate shvatiti gdje je otišao. Na primjer, da biste pronašli datoteke veće od 1000 MB, pokrenite sljedeću naredbu:

Pronađi / -veličina +1000M

Mogu se koristiti sljedeće skraćenice:

  • c - bajtovi
  • k - kilobajti
  • M - megabajti
  • G - gigabajti
  • b - blokovi od 512 bajtova

Ovo je samo nekoliko načina za korištenje moćne komande. Više načina možete pronaći u priručniku pokretanjem naredbe