Poiščite ime datoteke. Ukaz find in njegove možnosti so prikazani v primerih. Primeri uporabe find

To je privzeta pozdravna stran, ki se uporablja za testiranje pravilnega delovanja strežnika Apache2 po namestitvi v sisteme Ubuntu. Temelji na enakovredni strani v Debianu, iz katere je izpeljana embalaža Ubuntu Apache. Če lahko preberete to stran, to pomeni, da strežnik HTTP Apache, nameščen na tem mestu, deluje pravilno. Moral bi zamenjajte to datoteko(na naslovu /var/www/html/index.html), preden nadaljujete z upravljanjem strežnika HTTP.

Če ste običajen uporabnik te spletne strani in ne veste, o čem govori ta stran, to verjetno pomeni, da stran trenutno ni na voljo zaradi vzdrževanja. Če se težava ponovi, se obrnite na skrbnika strani.

Pregled konfiguracije

Ubuntujeva privzeta konfiguracija Apache2 se razlikuje od privzete konfiguracije navzgor in je razdeljena na več datotek, optimiziranih za interakcijo z orodji Ubuntu. v celoti dokumentiran v /usr/share/doc/apache2/README.Debian.gz. Glejte to za celotno dokumentacijo. Dokumentacija za spletni strežnik lahko najdete z dostopom do priročnika, če je bil paket apache2-doc nameščen na tem strežniku.

Konfiguracijska postavitev za namestitev spletnega strežnika Apache2 v sistemih Ubuntu je naslednja:

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.naloži | `-- *.conf |-- conf omogočeno | `-- *.conf |-- spletna mesta omogočena | `-- *.conf

  • apache2.conf je glavna konfiguracijska datoteka. Združi dele tako, da ob zagonu spletnega strežnika vključi vse preostale konfiguracijske datoteke.
  • ports.conf je vedno vključen iz glavne konfiguracijske datoteke. Uporablja se za določanje poslušajočih vrat za dohodne povezave in to datoteko je mogoče kadar koli prilagoditi.
  • Konfiguracijske datoteke v imenikih mods-enabled/, conf-enabled/ in sites-enabled/ vsebujejo posebne konfiguracijske izrezke, ki upravljajo module, globalne konfiguracijske fragmente ali konfiguracije navideznega gostitelja.
  • Aktivirajo se s simbolnim povezovanjem razpoložljivih konfiguracijskih datotek iz njihovih ustreznih *-available/. Te je treba upravljati z uporabo naših pomočnikov a2enmod, a2dismod, a2ensite, a2dissite in a2enconf, a2disconf. Za podrobne informacije si oglejte njihove ustrezne strani z navodili.
  • Binarna datoteka se imenuje apache2. Zaradi uporabe spremenljivk okolja je treba v privzeti konfiguraciji apache2 zagnati/ustaviti z /etc/init.d/apache2 ali apache2ctl. Neposredno klicanje /usr/bin/apache2 ne bo delovalo s privzeto konfiguracijo.

Korenine dokumentov

Ubuntu privzeto ne dovoljuje dostopa prek spletnega brskalnika do kaj razen tistih, ki se nahajajo v imenikih /var/www, public_html (ko je omogočeno) in /usr/share (za spletne aplikacije). Če vaše spletno mesto uporablja koren spletnega dokumenta, ki se nahaja drugje (na primer v /srv), boste morda morali svoj korenski imenik dokumenta dodati na seznam dovoljenih v /etc/apache2/apache2.conf.

Privzeti koren dokumenta Ubuntu je /var/www/html. Ustvarite lahko lastne virtualne gostitelje pod /var/www. To se razlikuje od prejšnjih izdaj, ki zagotavljajo boljšo varnost takoj po namestitvi.

Poročanje o težavah

Za prijavo napak v paketu Apache2 z Ubuntujem uporabite orodje ubuntu-bug. Vendar preverite, preden prijavite novo napako.

Prosimo, da hrošče, specifične za module (kot so PHP in drugi), prijavite ustreznim paketom, ne samemu spletnemu strežniku.

Med delom na katerem koli operacijskem sistemu je včasih treba uporabiti orodja za hitro iskanje to ali ono datoteko. To velja tudi za Linux, zato bo vse obravnavano spodaj možne načine poiščite datoteke v tem OS. Predstavljeni bodo kot orodja upravitelj datotek in ukaze, uporabljene v "terminal".

Če morate določiti veliko parametrov iskanja, da bi našli datoteko, ki jo potrebujete, potem ukaz najti nenadomestljiv. Preden razmislimo o vseh njegovih različicah, je vredno pregledati sintakso in možnosti. Ima naslednjo sintakso:

možnost iskanja poti

Kje pot- to je imenik, v katerem bo potekalo iskanje. Obstajajo tri glavne možnosti za določitev poti:

  • / — iskanje v korenskih in sosednjih imenikih;
  • ~ — iskanje po domačem imeniku;
  • ./ — iskanje v imeniku, v katerem se uporabnik trenutno nahaja.

Določite lahko tudi pot neposredno do samega imenika, kjer naj bi se datoteka nahajala.

Opcije najti veliko jih je in zahvaljujoč njim lahko izvedete prilagodljive nastavitve iskanja z nastavitvijo potrebnih spremenljivk:

  • - ime- opravite iskanje na podlagi imena elementa, ki ga iščete;
  • - uporabnik- iskanje datotek, ki se nanašajo na določenega uporabnika;
  • -skupina- iskanje določene skupine uporabnikov;
  • -perm- prikaz datotek z določenim načinom dostopa;
  • - velikost n- iskanje glede na velikost predmeta;
  • -mčas +n -n- iskanje datotek, ki so bile spremenjene več kot ( +n) ali manj ( -n) pred dnevi;
  • - vrsta- iskanje datotek določene vrste.

Obstaja tudi veliko vrst elementov, ki jih iščete. Tukaj je njihov seznam:

  • b- blok;
  • f- vsakdanji;
  • str- imenovana cev;
  • d- katalog;
  • l- povezava;
  • s- vtičnica;
  • c- simbolično.

Po podrobni analizi sintakse in možnosti ukaza najti Lahko greste neposredno na ilustrativne primere. Zaradi obilice možnosti uporabe ukaza primeri ne bodo podani za vse spremenljivke, temveč le za najpogosteje uporabljene.

1. način: iskanje po imenu (možnost -name)

Najpogosteje uporabniki uporabljajo možnost iskanja po sistemu - ime, torej tam bomo začeli. Poglejmo si nekaj primerov.

Iskanje po razširitvi

Recimo, da morate v sistemu najti datoteko s pripono ".xlsx", ki se nahaja v imeniku "Dropbox". Če želite to narediti, morate uporabiti naslednji ukaz:

najdi /home/user/Dropbox -name "*.xlsx" -print

Iz sintakse lahko rečemo, da se iskanje izvaja v imeniku "Dropbox" ("/home/user/Dropbox"), želeni predmet pa mora imeti pripono ".xlsx". Zvezdica pomeni, da bo iskanje opravljeno po vseh datotekah te razširitve, ne da bi se upoštevalo njihovo ime. "-print" označuje, da bodo prikazani rezultati iskanja.

Iskanje po imenu datoteke

Na primer, želite iskati v imeniku "/domov" datoteka z imenom "kepe", vendar njegova razširitev ni znana. V tem primeru morate storiti naslednje:

najti ~ -ime "lumpics*" -tisk

Kot lahko vidite, je tukaj uporabljen simbol «~» , kar pomeni, da bo iskanje potekalo v domačem imeniku. Po možnosti "-ime" podano je ime iskane datoteke ( "kepe*"). Zvezdica na koncu pomeni, da bo iskanje potekalo samo po imenu, brez upoštevanja končnice.

Iskanje po prvi črki imena

Če se spomnite samo prve črke imena datoteke, obstaja posebna sintaksa ukaza, ki vam jo bo pomagala najti. Na primer, želite najti datoteko, ki se začne s črko od "g" prej "l", in ne veste, v katerem imeniku je. Nato morate zagnati naslednji ukaz:

najdi / -ime "*" -tisk

Sodeč po simbolu “/”, ki pride takoj za glavnim ukazom, bo iskanje potekalo od korenskega imenika, to je po celotnem sistemu. Naprej, del «*» pomeni, da se bo iskana beseda začela z določeno črko. V našem primeru iz "g" prej "l".

Mimogrede, če poznate pripono datoteke, potem za simbolom «*» lahko navedete. Na primer, morate najti isto datoteko, vendar veste, da ima pripono ".odt". Nato lahko uporabite ta ukaz:

find / -name "*.odt" -print

2. način: iskanje po načinu dostopa (možnost -perm)

Včasih morate najti predmet, katerega imena ne poznate, vendar veste, kakšen način dostopa ima. Potem morate uporabiti možnost "-perm".

Uporaba je precej preprosta, le določiti morate lokacijo iskanja in način dostopa. Tukaj je primer takega ukaza:

najti ~ -perm 775 -tisk

To pomeni, da se iskanje izvaja v domačem delu in predmeti, ki se iščejo, bodo imeli dostop 775 . Pred to številko lahko napišete tudi simbol »-«, potem bodo najdeni predmeti imeli dovoljene bite od nič do podane vrednosti.

3. način: Iskanje po uporabniku ali skupini (možnosti -uporabnik in -skupina)

Vsak operacijski sistem ima uporabnike in skupine. Če želite najti predmet, ki spada v eno od teh kategorij, lahko uporabite možnost "-uporabnik" oz "-skupina", oz.

Poiščite datoteko po njenem uporabniškem imenu

Na primer, morate najti v imeniku "Dropbox" mapa "Svetilke", vendar ne veste, kako se imenuje, veste le, da pripada uporabniku "uporabnik". Nato morate zagnati naslednji ukaz:

najdi /home/user/Dropbox -uporabnik uporabnik -print

V tem ukazu ste določili zahtevani imenik ( /domov/uporabnik/Dropbox), nakazal, da morate poiskati datoteko, ki pripada uporabniku ( - uporabnik) in navedel, kateremu uporabniku pripada ta datoteka ( uporabnik).

Iskanje datoteke po imenu skupine

Iskanje datoteke, ki pripada določeni skupini, je prav tako preprosto - le zamenjati morate možnost "-uporabnik" na možnost "-skupina" in navedite ime te skupine:

najdi / -skupina gostov -tisk

To pomeni, da ste navedli, da želite najti datoteko v sistemu, ki pripada skupini "gost". Iskanje bo potekalo po celotnem sistemu, to je označeno s simbolom «/» .

4. način: Iskanje datoteke po vrsti (možnost -type)

Iskanje elementa določene vrste v Linuxu je precej preprosto, le podati morate ustrezno možnost ( - vrsta) in določite vrsto. Na začetku članka so bile navedene vse tipske oznake, ki jih lahko uporabimo za iskanje.

Na primer, želite najti vse blokirane datoteke v domačem imeniku. V tem primeru bi vaš ukaz izgledal takole:

najti ~ -vrsta b -tisk

V skladu s tem ste navedli, da iščete po vrsti datoteke, kar dokazuje možnost "-vrsta", nato pa določil njegovo vrsto tako, da je postavil simbol blokovne datoteke - "b".

Na enak način lahko prikažete vse imenike v želenem imeniku z vnosom simbola v ukaz "d":

najdi /home/user -type d -print

5. način: Iskanje datoteke po velikosti (možnost -velikosti)

Če o datoteki veste le njena velikost, je morda tudi to dovolj, da jo najdete. Na primer, če želite najti 120 MB veliko datoteko v določenem imeniku, naredite to:

poiščite /home/user/Dropbox -velikost 120M -print

Kot lahko vidite, je bila datoteka, ki jo potrebujemo, najdena. Če pa ne veste, v katerem imeniku je, lahko preiščete celoten sistem tako, da na začetku ukaza navedete korenski imenik:

najdi / -velikost 120M -tisk

Če poznate približno velikost datoteke, potem obstaja poseben ukaz za ta primer. Registrirati se morate "terminal" ista stvar, samo postavite znak pred navedbo velikosti datoteke «-» (če morate najti datoteke, manjše od podane velikosti) oz «+» (če je velikost datoteke, ki jo iščete, večja od navedene velikosti). Tukaj je primer takega ukaza:

najti /home/user/Dropbox +100M -print

6. način: Iskanje datoteke po datumu spremembe (možnost -mtime)

Včasih je najbolj priročno iskati datoteko po datumu, ko je bila spremenjena. V sistemu Linux se to naredi z možnostjo "-mtime". Uporaba je precej preprosta, poglejmo vse na primeru.

Recimo v mapi "slike" najti moramo predmete, ki so bili v zadnjih 15 dneh predmet sprememb. Tukaj je tisto, kar morate napisati "terminal":

najdi /home/user/Images -mtime -15 -print

Kot lahko vidite, ta možnost ne prikazuje samo datotek, ki so bile spremenjene v določenem obdobju, ampak tudi mape. Deluje tudi v nasprotni smeri - najdete lahko predmete, ki so bili spremenjeni po določenem datumu. Če želite to narediti, morate pred digitalno vrednostjo vnesti znak «+» :

najdi /home/user/Images -mtime +10 -print

GUI

Grafični vmesnik zelo olajša življenje začetnikom, ki so pravkar namestili Distribucija Linuxa. Ta metoda iskanje je zelo podobno tistemu v sistemu Windows, vendar ne more zagotoviti vseh prednosti, ki jih ponuja "terminal". Ampak najprej. Torej, poglejmo, kako iskati datoteke v Linuxu z grafičnim vmesnikom sistema.

1. način: Iskanje po sistemskem meniju

Zdaj si bomo ogledali, kako poiskati datoteke prek menija Linux sistemi. Izvedena dejanja bodo izvedena v distribuciji Ubuntu 16.04 LTS, vendar so navodila skupna za vse.

Ta članek je odlomek iz knjige " Linux&Unix - programiranje v lupini", David Tansley.

Urejanje sem naredil malo v naglici; če opazite kakšno napako, napišite v komentar.

Med delom je pogosto treba iskati datoteke z določenimi lastnostmi, kot so pravice dostopa, velikost, vrsta itd. Ukaz find je univerzalno iskalno orodje: omogoča iskanje datotek in imenikov, ogled vseh imenikov v sistemu ali samo trenutnega imenika.

To poglavje pokriva naslednje teme, povezane z uporabo ukaza find:

poiščite ukazne možnosti;

Primeri uporabe različnih možnosti ukaza najdi;

Primeri uporabe ukazov xargs in find skupaj.

Zmožnosti ukaza find so obsežne, seznam ponujenih možnosti pa velik. V tem poglavju so opisani najpomembnejši med njimi. Ukaz find lahko celo išče po diskih NFS (Omrežni datotečni sistem- omrežni datotečni sistem), seveda če imate ustrezna dovoljenja. IN podobnih primerih ukaz se običajno izvede v ozadje, saj je brskanje po drevesu imenikov zamudno. Splošna oblika ukaza za iskanje je:

najti ime_poti -možnosti

Kje ime_poti- to je imenik, iz katerega začnete iskanje. Znak '.' se uporablja za označevanje trenutnega imenika, znak / je korenski imenik, znak "~" pa je tisti, ki je shranjen v spremenljivki. $HOME začetni imenik Trenutni uporabnik.

2.1. poiščite ukazne možnosti

Oglejmo si opis glavnih možnosti ukaza za iskanje.

Ime Iskanje datotek, katerih imena se ujemajo z danim vzorcem

Natisni Zapiše polna imena najdenih datotek v standardni izhod

Perm Iskanje datotek, za katere je nastavljen določen način dostopa

Obrezovanje To se uporablja za preprečitev ukazu find izvajanja rekurzivnega iskanja na poti, ki je že bila najdena; če je podana možnost -depth, je možnost -prune prezrta

Uporabnik Iskanje datotek v lasti določenega uporabnika

Skupina Iskanje datotek, ki pripadajo dani skupini

Mtime -n +n Iskanje datotek, katerih vsebina je bila spremenjena manj kot (-) ali več kot (+) n pred dnevi; Na voljo sta tudi možnosti -atime in -ctime, ki omogočata iskanje datotek glede na datum zadnjega branja in datum zadnje spremembe atributov datoteke

Nogroup Iskanje datotek, ki pripadajo neobstoječi skupini, za katero z drugimi besedami v datoteki ni vnosa /etc/groups

Nouser Poišče datoteke v lasti neobstoječega uporabnika, za katere z drugimi besedami v datoteki ni vnosa /etc/passwd

Novejši mapa Poiščite datoteke, ki so ustvarjene pozneje kot podana datoteka

Vrsta Poiščite datoteke določene vrste, in sicer: b- posebna blok datoteka; d- katalog; z- datoteka s posebnimi simboli; str- imenovana cev; l- simbolna povezava; s- vtičnica; f- običajna datoteka

Velikost n Poiščite datoteke, katerih velikost je n enote; Možne so naslednje merske enote: b- velikost bloka 512 bajtov (privzeta nastavitev); z- bajt; k- kilobajt (1024 bajtov); w- dvobajtna beseda

Globina Pri iskanju datotek se najprej pogleda vsebina trenutnega imenika in šele nato se preveri vnos, ki ustreza samemu imeniku

F tip Išče datoteke, ki so v datotečnem sistemu določene vrste; Običajno so ustrezne informacije shranjene v datoteki /etc/fstab, ki vsebuje podatke o datotečnih sistemih, ki se uporabljajo v lokalnem računalniku

Priklop Išče datoteke samo v trenutnem datotečnem sistemu; Enakovredna tej možnosti je možnost -xdev -exec Izvedi ukaz tolmača lupina za vse odkrite datoteke; izvedeni ukazi imajo ukaz format ( );

(upoštevajte presledek med znakoma () in 😉

Ok Podobno kot -exec, vendar prikaže poziv pred izvedbo ukaza

2.1.1. Možnost - ime

Pri delu z ukazom find se najpogosteje uporablja možnost -name. Slediti mu mora vzorec imena datoteke v narekovajih.
Če morate najti vse datoteke s pripono . txt v domačem imeniku določite simbol kot ime poti. Ime začetnega imenika bo ekstrahirano iz spremenljivke $HOME.

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

Za iskanje vseh datotek s pripono .txt ki se nahaja v trenutnem imeniku, uporabite naslednji ukaz:

$najdi. -ime "*.txt" -tiskanje

Če želite najti vse datoteke v trenutnem imeniku, ki imajo v imenu vsaj eno veliko črko, vnesite naslednji ukaz:

$najdi. -ime "*" -tisk

Poiščite v katalogu /itd datoteke, katerih imena se začnejo z znaki " gostitelj", dovoljuje ukaz

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

V začetnem imeniku poiščite vse datoteke s pripono .txt kot tudi datoteke, katerih imena se začnejo s piko, ustvari ukaz

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

Možnost -O je oznaka za logično operacijo ALI. Če ga uporabite, bodo poleg datotek z običajnimi imeni najdene tudi datoteke, katerih imena se začnejo s piko.

Če želite prikazati seznam vseh datotek v sistemu, ki nimajo končnice, zaženite spodnji ukaz, vendar bodite previdni, saj lahko močno upočasni sistem:

$ find / -name "*" -print

V nadaljevanju je prikazano, kako najti vse datoteke, katerih imena se začnejo z malimi črkami, ki jim sledita dve številki in končnica .txt(Na primer, akh37.xt):

$najdi. -ime » [a-x] [a-x] . txt" -natis

2.1.2. Možnost -perm

Možnost -perm omogoča iskanje datotek z določenim načinom dostopa. Na primer za iskanje datotek z načinom dostopa 755 (kateri koli uporabnik si jih lahko ogleduje in izvaja, vendar ima samo lastnik pravico pisanja) morate uporabiti naslednji ukaz:

$najdi. -perm 755 -tisk

Če pred vrednostjo načina vstavite vezaj, bo poiskal datoteke, za katere so nastavljeni vsi podani biti dovoljenj, preostali biti pa bodo prezrti. Naslednji ukaz na primer išče datoteke, do katerih imajo drugi uporabniki poln dostop:

$najdi. -perm -007 -tisk

Če pred vrednostjo načina vnesete znak plus, se poiščejo datoteke, za katere je nastavljen vsaj eden od podanih bitov dovoljenja, preostali biti pa se prezrejo.

2.1.3. Možnost - obrezovanje

Če ne želite iskati po določenem imeniku, uporabite možnost -prune. To vam naroči, da ustavite iskanje na trenutni poti. Če ime poti kaže na imenik, ukaz za iskanje ne bo šel vanj. Če je prisotna možnost -depth, je možnost -prune prezrta.

Naslednji ukaz išče trenutni imenik, ne da bi šel v podimenik /bin:

$najdi. -ime "bin" -prune -o -print

2.1.4. Opcije -uporabnik in --nouser

Če želite poiskati datoteke v lasti določenega uporabnika, v ukazu za iskanje podajte možnost -user, ki ji sledi uporabniško ime. Na primer iskanje datotek v lasti uporabnika v začetnem imeniku dave, se izvede z naslednjim ukazom:

$ najdi ~ -uporabnik dave -print

Iščite po katalogu /itd datoteke v lasti uporabnika uucp, izvede naslednji ukaz:

$ find /etc -uaer uucp -print

Zahvaljujoč možnosti -nouser je mogoče iskati datoteke, ki pripadajo neobstoječim uporabnikom. Pri uporabi se išče datoteke, katerih lastniki nimajo vnosa v datoteko /etc/passwd. Določenega uporabniškega imena ni treba določiti; ukaz find opravi vse potrebno delo sam. Za iskanje vseh datotek, ki so v lasti neobstoječih uporabnikov in se nahajajo v imeniku /domov, vnesite ta ukaz:

$ find /home -nouaer -print

2.1.5. Možnosti -group in -nogroup

Možnosti -group in -nogroup sta podobni -user-nouser/apps vseh datotek v lasti uporabnikov v skupini accts:

$ najdi /arra -skupina accta -tisk

Naslednji ukaz išče po celotnem sistemu datoteke, ki pripadajo neobstoječim skupinam:

$ find / -nogroup -print

2.1.6. Možnost -mtime

Pri iskanju datotek, do katerih ste dostopali, je treba uporabiti možnost -mtime X pred dnevi. Če je argument možnosti opremljen z znakom '-', bodo izbrane datoteke, do katerih že nekaj časa niste dostopali. X dnevi. Argument z znakom ‘+’ vodi do nasprotnega rezultata – izbrane so datoteke, do katerih ste dostopali v zadnjem času X dnevi.

Naslednji ukaz vam omogoča iskanje vseh datotek, ki v zadnjih petih dneh niso bile posodobljene:

$ find / -mtime -5 -print

Spodaj je ukaz, ki išče po imeniku /var/adm datoteke, ki so bile posodobljene v zadnjih treh dneh:

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

2.1.7. - novejša možnost

Če morate poiskati datoteke, do katerih ste dostopali v času med posodobitvami dveh navedenih datotek, uporabite možnost -newer. Splošna oblika njegove uporabe je naslednja:

Novejši stara_datoteka! - novejši nova_datoteka

znak ' ! ' je operator logične negacije. Pomeni: poiščite datoteke, ki so novejše od stara_datoteka, a starejši od nova_datoteka.

Recimo, da imamo dve datoteki, ki sta bili posodobljeni v razmaku nekaj več kot dveh dni:

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

Če želite najti vse datoteke, ki so bile posodobljene pozneje kot age.awk, vendar prej kot pasovi.awk, zaženite naslednji ukaz (uporaba možnosti -exec je opisana spodaj):

$najdi. -nova doba.awk ! -novejši pasovi.awk -exec Je -1 () ;
-rwxrwxr-x 1 root root 62 18. apr. 11:32 ./who.awk
-rwxrwxr-x 1 root root 49 18. apr. 12:05 ./group.awk
-rw-r-r- 1 root root 201 Apr 20 19:30 ./grade2.txt
-rwxrwxr-x 1 root root 1054 20. apr. 19:37 ./belts.awk

Kaj pa, če morate najti datoteke, ustvarjene, recimo, v zadnjih dveh urah, vendar nimate datoteke, ustvarjene pred natanko dvema urama, da bi jo primerjali? Ustvarite takšno datoteko! Temu je namenjen ukaz touch -t, ki ustvari datoteko z danim časovnim žigom v formatu MMDChhmm (mesec-dan-ure-minute). Na primer:

$ dotik -t 05042140 dstamp
$ls -1 džig
-rw-r-r- 1 dave admin 0 4. maj 21:40 dstamp

Rezultat bo datoteka, katere datum ustvarjanja je 4. maj, čas ustvarjanja -21:40 (ob predpostavki, da Trenutni čas- 23:40). Zdaj lahko uporabite ukaz find z možnostjo -newer, da poiščete vse datoteke, ki so bile posodobljene v zadnjih dveh urah:

$najdi. -nov datamp -tiskanje

2.1.8. Možnost - vrsta

OS UNIX in Linux podporo Različne vrste datoteke. Iskanje datotek pravi tip končano z ukazom, poiščite z možnostjo -type. Na primer za iskanje vseh podimenikov v imeniku /itd uporabite ta ukaz:

$ find /etc -type d -print

Za seznam vseh datotek, ne pa tudi imenikov, zaženite naslednji ukaz:

$najdi. ! -tip d -tisk

Spodaj je ukaz, ki je zasnovan za iskanje vseh simbolnih povezav v imeniku /itd.

$ find /etc -type 1 -print

2.1.9. Možnost -velikost

Med postopkom iskanja se velikost datoteke določi z možnostjo -size n, Kje n- velikost datoteke v blokih po 512 bajtov. Možni argumenti imajo naslednje pomene: +N- iskanje datotek, katerih velikost je večja od določene, -N- manj kot je določeno, n- enako danemu. Če argument dodatno določa simbol z, se šteje, da je velikost navedena v bajtih, ne v blokih, in če je znak k- v kilobajtih. Za iskanje datotek, katerih velikost presega 1 MB, uporabite ukaz

$najdi. -aize -flOOOk -tisk

Naslednji ukaz išče imenik /domov/apache datoteke, katerih velikost je točno 100 bajtov:

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

Naslednji ukaz vam omogoča iskanje datotek, večjih od 10 blokov (5120 bajtov):

$najdi. -velikost +10 -tisk

2.1.10. Možnost Možnost -globina

Možnost -depth vam omogoča, da iskanje organizirate tako, da se najprej preverijo vse datoteke v trenutnem imeniku (in rekurzivno vsi njegovi podimeniki) in šele na koncu - vnos samega imenika. Ta možnost se pogosto uporablja pri ustvarjanju seznama datotek za arhiviranje na trak z uporabo ukaza cpio ali tar, saj se v tem primeru slika imenika najprej zapiše na trak in šele nato nastavi pravice dostopa do nje. To uporabniku omogoča arhiviranje tistih imenikov, za katere nima dovoljenja za pisanje.
Naslednji ukaz izpiše seznam vseh datotek in podimenikov trenutnega imenika:

$najdi. -ime "*" -tisk -o -ime ".*" -tisk -glob

Takole bi lahko izgledali rezultati njenega dela:

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

2.1.11. - možnost namestitve

Išče datoteke samo v trenutnem datotečnem sistemu, razen drugih nameščenih datotečni sistemi, ponuja možnost -mount za ukaz find. Naslednji primer išče vse datoteke s pripono .xc v trenutni particiji diska:

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

2.1.12. Iskanje datotek in njihovo arhiviranje z ukazom cpio

Ukaz cpio se uporablja predvsem za pisanje datotek na trak in branje z njega. Zelo pogosto se uporablja v povezavi z ukazom find, od katerega prejme seznam datotek prek cevi.

Tukaj je opisano, kako posnamete vsebino imenika na trak /itd, /domov in /aplikacije:

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

Možnost -O Ukaz cpio podaja način za zapisovanje datotek na trak. Možnost -v (verbose- besedni način) je navodilo ukazu cpio za poročanje o vsaki obdelani datoteki.

Upoštevajte, da imena imenikov nimajo začetnega znaka '/'. Na ta način se nastavijo relativna imena poti arhiviranih imenikov, ki bodo ob naknadnem branju datotek iz arhiva omogočila njihovo ponovno ustvarjanje v kateremkoli delu operacijski sistem, in ne samo v korenskem imeniku.

2.1.13. Možnosti -exec in -ok

Recimo, da ste našli potrebne datoteke in želite izvesti določena dejanja v zvezi z njimi. V tem primeru boste potrebovali možnost -exec (nekateri sistemi dovoljujejo samo izvajanje ukazov ls ali ls -1 z možnostjo -exec). Mnogi uporabniki uporabljajo možnost -exec za iskanje starih datotek za brisanje. Priporočam, da zaženete ls namesto rm, da zagotovite, da ukaz find najde datoteke, ki jih želite odstraniti.

Za možnostjo -exec podajte ukaz, ki naj se izvede, sledijo mu zaviti oklepaji, presledek, poševnica nazaj in na koncu podpičje. Poglejmo primer:

$najdi. -type f -exec Xa -1 () ;
-rwxr-xr-x 10 korensko kolo 1222 4. januar 1993 ./sbin/C80
-rwxr-xr-x 10 korensko kolo 1222 4. januar 1993 ./sbin/Normal
-rwxr-xr-x 10 korensko kolo 1222 4. januar 1993 ./sbin/Rewid

To išče običajne datoteke, katerih seznam je prikazan na zaslonu z uporabo ukaza ls -1.

Za iskanje datotek, ki niso bile posodobljene v imeniku /dnevniki v zadnjih petih dneh in jih odstranite, zaženite naslednji ukaz:

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

Pri premikanju ali brisanju datotek bodite previdni. Uporabite možnost -ok, ki vam omogoča izvajanje ukazov mv in rm varni način(pred obdelavo naslednje datoteke se izda potrditvena zahteva). V naslednjem primeru ukaz find najde datoteke s pripono .log, in če je bila datoteka ustvarjena pred več kot petimi dnevi, jo izbriše, vendar najprej zahteva potrditev te operacije:

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

Če želite izbrisati datoteko, vnesite pri in preprečiti to dejanje - n.

2.1.14. Dodatni primeri uporabe ukaza find

Oglejmo si še nekaj primerov, ki ponazarjajo uporabo ukaza find. Spodaj je opisano, kako najti vse datoteke v začetnem imeniku:

$ najti ~ -tisk

Poiščite vse datoteke, za katere je bit nastavljen SUID, naslednji ukaz omogoča:

$najdi. -tip f -perm +4000 -tisk

Če želite dobiti seznam praznih datotek, uporabite ta ukaz:

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

Eden od mojih sistemov vsak dan ustvari dnevnik nadzora sistema. Imenu datoteke dnevnika je dodana številka, ki vam omogoča, da takoj ugotovite, katera datoteka je bila ustvarjena pozneje in katera prej. Na primer, različice datotek admin.log zaporedno oštevilčeno: admin.log.001, admin.log.002 itd. Spodaj je ukaz find, ki odstrani vse datoteke admin.log ustvarjeno pred več kot sedmimi dnevi:

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

2.2. ekipa xargs

Z možnostjo -exec ukaz find posreduje vse najdene datoteke podanemu ukazu, ki se obdelajo hkrati. Na žalost je v nekaterih sistemih dolžina ukazne vrstice omejena, zato lahko pri obdelavi velikega števila datotek prejmete sporočilo o napaki, ki se običajno glasi: "Preveč argumentov"(preveč argumentov) oz "Argumenti predolgi"(prevelik seznam argumentov). V tej situaciji na pomoč priskoči ukaz xargs. Datoteke, prejete z ukazom find, obdeluje v kosih in ne vseh hkrati.

Razmislite o primeru, v katerem ukaz find vrne seznam vseh datotek, ki so prisotne v sistemu, ukaz xargs pa na njih zažene ukaz file in preveri vrsto vsake datoteke:

$ find / -type f -print I xarge.file
/etc/protocols: angleško besedilo /etc/securetty: ASCII besedilo

Spodaj je primer, ki prikazuje iskanje datotek izpisa, katerih imena ukaz echo vnese v datoteko /tmp/core.log.

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

V naslednjem primeru v imeniku /apps/audit išče vse datoteke, do katerih imajo drugi uporabniki poln dostop. ukaz chmod jim odstrani dovoljenje za pisanje:

$ find /appe/audit -perm -7 -print | xarge chmod o-w

Naš seznam zaključuje primer, v katerem ukaz grep išče datoteke, ki vsebujejo besedo " napravo«:

$ najdi / -vrsta f -print | xarge grep "naprava"

2.3. Zaključek

Ukaz find je odlično orodje za iskanje različnih datotek po najrazličnejših kriterijih. Zahvaljujoč možnosti -exec in ukazu xargs lahko najdene datoteke obdela skoraj vsak sistemski ukaz.

Če pogosto delate v ukazna vrstica na računalniku ali strežniku, kjer sploh ni grafične lupine, boste prej ali slej soočeni z nalogo iskanja datotek. Na srečo ima Linux že vgrajen ukaz, ki omogoča iskanje datoteke v sistemu.

Danes bomo govorili o uporabi ukaza za iskanje - verjemite mi, vredno se je naučiti delati s tem zmogljivim in priročnim orodjem.

Kako uporabljati ukaz find

Preprosto povedano, osnovna sintaksa za ukaz find je naslednja:

Poišči /path parametre datoteke ime

Razumejmo zmožnosti ekipe

Poiščite datoteko po imenu

Prvi parameter je pot. Če ne veste, kje bi se datoteka lahko skrivala, zamenjajte pot z / - to je dovolj. Vendar pa je lahko iskanje po celotnem disku precej zamudno in če veste, kje se lahko nahaja datoteka, določite mapo, iz katere želite začeti iskanje (na primer ~ za iskanje v domači mapi uporabnika).

Zdaj pa preidimo na iskalne parametre. Obstajata dve možnosti za iskanje datoteke po imenu:

  • ime - iskanje imena datoteke, ki razlikuje med velikimi in malimi črkami
  • iname - iskanje po imenu datoteke, ki ne razlikuje med velikimi in malimi črkami

Ne smemo pozabiti, da je v Linuxu velika velikost imena datoteke pomembna in če morate najti na primer datoteko Ubuntu.txt, potem naslednji ukaz ne bo dal nobenih rezultatov:

Poiščite / -name ubuntu.txt

Lahko pa uporabite ukaz iname in izvedete iskanje brez upoštevanja velikih in malih črk:

Poiščite / -iname ubuntu.txt

Iskanje po vrsti

Ukaz find omogoča iskanje več kot le datotek. Tu so vrste podpore za iskanje ročajev:

  • f - običajna datoteka
  • d - imenik
  • l - simbolna povezava
  • c - naprava znakov
  • b - blok naprava

Na primer, če želite poiskati vse imenike v domačem imeniku trenutnega uporabnika, ki se začnejo z "config", zaženite naslednji ukaz:

Find ~ -type d -name config*

Izpis rezultatov iskanja v datoteko

Priročna funkcija izpisa rezultata ukaza v datoteko bo zelo uporabna, če je rezultatov iskanja veliko ali če je treba z njimi delati pozneje. Na primer, če želite shraniti seznam vseh najdenih konfiguracijske datoteke vložiti conf_search, zaženite naslednji ukaz:

Poiščite /etc -type f -name “*.conf” > conf_search

Iskanje datotek po velikosti

To je zelo uporabna možnost, ko vam zmanjkuje prostora na disku in morate ugotoviti, kam je šel. Če želite na primer najti datoteke, večje od 1000 MB, zaženite naslednji ukaz:

Najdi / -velikost +1000M

Uporabijo se lahko naslednje okrajšave velikosti:

  • c - bajti
  • k - kilobajtov
  • M - megabajti
  • G - gigabajti
  • b - bloki 512 bajtov

To je le nekaj načinov za uporabo zmogljivega ukaza. Več načinov lahko najdete v priročniku z izvajanjem ukaza