Ukaz Linux in Unix najti izvede iskanje datotek v hierarhiji imenikov.
Sintaksa za najti ukaz:
najti pot … izraz
Opis
Ta priročnik stran dokumentira GNU različico najti . Ukaz najti išče drevo imenikov, ki je ukoreninjeno za vsako ime datoteke, tako da oceni dani izraz iz leve proti desni v skladu s prednostnimi pravili (glej razdelek o operaterjih spodaj), dokler ni znan; z drugimi besedami, leva stran je napačna in operacije, veljajo za ali , na kateri točki najti se premakne na naslednje ime datoteke.
Prvi argument, ki se začne s:
- -
- ( ali),
- !
se šteje za začetek izraza; vsi argumenti pred njim so poti za iskanje in vsi argumenti po njem so preostali izrazi. Če ni podana nobena pot, se uporabi trenutni imenik. Če ni podan noben izraz, izraz -print se uporablja.
The najti ukaz zapusti s statusom 0, če so vse datoteke uspešno obdelane, večje od 0, če se pojavijo napake.
Izrazi
Izraz je sestavljen iz možnosti (ki vplivajo na celotno delovanje, ne pa na obdelavo določene datoteke in vedno vrnejo true), teste (ki vrnejo resnično ali napačno vrednost) in dejanja (ki imajo neželene učinke in vrnejo resnično ali lažna vrednost), ki jih vsi ločijo operaterji. Izraz - in se domneva, če je operator opuščen. Če izraz ne vsebuje nobenega drugega dejanja razen -prena , potem -print se izvaja na vseh datotekah, za katere je izraz resničen.
Opcije
Vse možnosti se vedno vrnejo. Vedno začnejo veljati, namesto da se obdelujejo le, če je doseženo njihovo mesto v izrazu. Zato je zaradi jasnosti najbolje, da jih postavite na začetek izraza.
| -dnevni začetek | Časi merjenja (za -amin, -atime, -cmin, -ime, -mmin, in -mtime ) od začetka danes kot pred 24 urami. |
| -Depot | Vsako vsebino imenika obdelajte pred samim imenikom. |
| -sledi | Dereference simbolne povezave. Implicira -Noleaf . |
| pomoč ali - pomoč | Natisnite povzetek uporabe ukazne vrstice najti in izstopa. |
| -maxdepth številka | Spustite se na največ število ravni (ne-negativno celo število) imenikov pod argumenti ukazne vrstice. Izraz -maxdepth 0 pomeni le uporabo preskusov in dejanj v argumentih ukazne vrstice. |
| -mindepth število | Ne uporabljajte nobenih preizkusov ali dejanj na ravni, ki je manjša od števila (ne-negativno celo število). Izraz -mindepth 1 pomeni obdelavo vseh datotek, razen argumentov ukazne vrstice. |
| -mount | Ne spustite imenikov na druge datotečne sisteme. Alternativno ime za -xdev , za združljivost z nekaterimi drugimi različicami najti . |
| -Noleaf | Ne optimizirajte se s predpostavko, da imenik vsebuje dve manj poddirektorij kot število trdih povezav. * |
| -version ali - različica | Natisnite najti številko različice in izstopu. |
| -xdev | Ne spustite imenikov na druge datotečne sisteme. |
* Ta možnost je potrebna, če iščete datotečne sisteme, ki ne sledijo konvenciji Unix directory-link, kot so datotečni sistemi CD-ROM ali MS-DOS ali točke priklopa AFS. Vsak imenik v običnem Unix datotečnem sistemu ima vsaj dve trdni povezavi: njegovo ime in njeno. (obdobje) vstopa. Poleg tega ima vsak poddirektorij (če obstaja). vnos, povezan s tem imenikom.
Kdaj najti preiskuje imenik, potem ko je določil dva manj poddirektorij od števila povezav imenika, ve, da so ostali vnosi v imeniku ne-imeniki ( list datoteke v dreju imenikov). Če je treba pregledati le imena datotek, jih ni treba objaviti; to omogoča znatno povečanje hitrosti iskanja.
Testi
Numerični argumenti so lahko določeni kot:
| + n | Za več kot n. |
| -n | Za manj kot n. |
| n | Za točno n. |
| -amin n | Datoteka je bila nazadnje dostopna n Pred nekaj minutami. |
| - drugo datoteka | Datoteka je bila nazadnje dostopna nazadnje kot mapa je bil spremenjen. -anjo je pod vplivom -follow samo, če se pojavijo -prihajajo -no v ukazni vrstici. |
| -time n | Datoteka je bila nazadnje dostopna n * Pred 24 urami. |
| -cmin n | Status datoteke je bil nazadnje spremenjen n Pred nekaj minutami. |
| -cnewer datoteka | Stanje datoteke je bilo nedavno spremenjeno, kot je bila datoteka spremenjena.- cnewer vpliva na -sledi samo če -sledi prihaja prej -novič v ukazni vrstici. |
| -ctime n | Status datoteke je bil nazadnje spremenjen n * Pred 24 urami. |
| -prazno | Datoteka je prazna in je redna datoteka ali imenik. |
| -Lesno | Vedno je napačen. |
| -fstype tip | Datoteka je v datotečnem sistemu določene vrste. Veljavni tipi datotečnih sistemov se razlikujejo med različnimi različicami Unixa; nepopoln seznam tipov datotečnih sistemov, ki so sprejeti na neki različici Unix-a ali drugega, so: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Če želite videti vrste vaših datotečnih sistemov, uporabite -printf z direktivo% F. |
| -gid n | ID številske skupine datoteke je n . |
| -group gname | Datoteka pripada skupini gname (dovoljena je dovoljena številska skupina). |
| -ilname vzorec | Kot -lname, vendar je tekma neobčutljiva. |
| -inoma vzorec | Všeč mi je ime , vendar je tekma neobčutljiva. Na primer, vzorci za * in F ?? se ujemajo z imeni datotek Foo , FOO , foo , fOo , itd. |
| -inum n | Datoteka ima številko inode n . |
| -ipat vzorec | Všeč mi je -pap , vendar je tekma neobčutljiva. |
| -iregex vzorec | Kot -regex, vendar je tekma neobčutljiva. |
| -povezave n | Datoteka ima n povezave. |
| -lname vzorec | Datoteka je simbolična povezava, katere vsebina se ujema z vzorcem lupine. Metakarakteri se ne zdravijo / ali . posebej. |
| -mmin n | Podatki datoteke so bili nazadnje spremenjeni n Pred nekaj minutami. |
| -mtime n | Podatki datoteke so bili nazadnje spremenjeni n * Pred 24 urami. |
| -name vzorec | Ime baze datoteke (pot z odstranjenimi vodilnimi imeniki) se ujema z vzorcem lupine. Metakarakteri (*, ?, in ) se ne ujemajo s . na začetku osnovnega imena. Če želite prezreti imenik in datoteke pod njim, uporabite -prena ; glej primer v opisu -pap . |
| -newer datoteka | Datoteka je bila nedavno spremenjena kot mapa . Izraz -newer vpliva na -sledi samo če -sledi prihaja prej -newer v ukazni vrstici. |
| -Ne | Noben uporabnik ne ustreza številčnemu ID-ju datoteke datoteke. |
| -nogroup | Nobena skupina ne ustreza številski ID-ji datoteke datoteke. |
| -pad vzorec | Ime datoteke se ujema z vzorcem lupine vzorec . Metakarakteri se ne zdravijo / ali . posebej; tako, na primer,najti . -path "./sr*sc bo natisnil vnos za imenik z imenom ./src/misc (če obstaja). Če želite prezreti celotno drevo imenikov, uporabite -prena namesto da preveri vsako datoteko v drevesu. Na primer, če preskočite imenik src / emacs in vse datoteke in imenike pod njim in natisnete imena drugih najdenih datotek, naredite nekaj takega:najti . -path './src/emacs' -prune -o -print |
| -perm način | Datoteki za dovoljenje datoteke so točni način (oktalnega ali simboličnega). Simbolni načini uporabljajo način 0 kot izhodišče. |
| -perm -mode | Vsi dovoljeni bitji način so nastavljene za datoteko. |
| -perm + način | Vsak od dovoljenih bitov način so nastavljene za datoteko. |
| -regex vzorec | Ime datoteke se ujema z regularnim izrazom vzorec . To je ujemanje na celotni poti, ne iskanje. Če želite na primer datoteko imenovati ./fubar3, lahko uporabite regularni izraz .*bar. ali . * b. * 3, vendar ne b. * r3. |
| - velikost n bckw | Datoteka uporablja n enote prostora. Enote so privzeto blokirane 512-bajtnih blokov ali če sledi b n , bajti, če c sledi n , kilobajtov, če k sledi n , ali 2-byte besede, če w sledi n . Velikost ne šteje posrednih blokov, ampak šteje število blokov v redkih datotekah, ki niso dejansko dodeljene. |
| -prav | Vedno res. |
| tip c | Datoteka je tipa c : |
| b | Block (pufer) poseben |
| c | Znak (neuporaben) poseben |
| d | Imenik |
| str | Imenovana cev (FIFO) |
| f | Redna datoteka |
| l | Simbolna povezava |
| s | Socket |
| D | vrata (Solaris) |
| -uid n | Številčni ID datoteke datoteke je n . |
| uporabljeno n | Datoteka je bila nazadnje dostopna n dni po tem, ko je bil njen status nazadnje spremenjen. |
| - obžalujem | Datoteka je v lasti uporabnika uname (dovoljen je številski ID uporabnika). |
| -stik c | Enako kot tip razen če je datoteka simbolična povezava. Za simbolične povezave: če -sledi ni bilo podano, če je datoteka povezava do vrste datoteke c ; če -sledi je bilo podano, res, če c je l. Z drugimi besedami, za simbolične povezave, - tip preveri vrsto datoteke, ki je tip ne preveri. |
Akcije
-exec ukaz ;
Izvedi ukaz ; true, če se vrne 0 status. Vsi naslednji argumenti donajti so argumenti za ukaz, dokler argument, sestavljen iz `; ' se srečuje. Niz `{} 'nadomesti trenutno ime datoteke, ki se obdeluje povsod, kjer se pojavi v argumentih za ukaz, ne le v argumentih, kjer je sam, kot v nekaterih različicahnajti. Obe konstrukti bo morda treba ubežati (z ` ') ali jih citirati, da jih zaščiti pred razširitvijo z lupino. Ukaz je izveden v začetnem imeniku.
-fls mapa
Prav; kot -ls, ampak piši na mapa kot -print.
-print mapa
Prav; natisnite celotno ime datoteke v datoteko mapa . Če mapa ne obstaja, kdajnajti se izvaja, je ustvarjen; če obstaja, je skrajšana. Datoteke "` / dev / stdout "in" / dev / stderr "se obravnavajo posebej; se nanašajo na standardni izhod in standardni izhod napake.
-print0 mapa
Prav; kot -print0, ampak piši na mapa kot -print.
-printf mapa formatu
Prav; kot -printf, ampak piši na mapa kot -print.
-v redu ukaz ;
Like -exec, ampak najprej vprašajte uporabnika (na standardnem vhodu); če se odgovor ne začne z znakom "y" ali "Y", ne zaženite ukaza in vrnite false.
Prav; natisnite celotno ime datoteke na standardni izhod, ki mu sledi nova linija.
-print0
Prav; na standardnem izhodu natisnite celotno ime datoteke, ki ji sledi ničelni znak.To omogoča imena datotek, ki vsebujejo nove vrstice, ki jih pravilno razlagajo programi, ki jih obdelujejonajti izhod.
-printf formatu
Prav; natisnite formatu na standardnem izhodu, razlaga `` pobegov in `% 'direktiv. Širina polja in natančnosti se lahko določijo kot pri funkciji `printf 'C. Za razliko od -print, -printf na koncu niza ne dodaja nove vrstice. Pobegi in direktive so:
a
Alarmni zvonec.
b
Backspace.
c
Takoj zaustavite tiskanje iz te oblike in izpustite izhod.
f
Feed feed.
n
Newline.
r
Vrnitev prevozov.
t
Horizontalni jeziček.
v
Vertikalni jeziček.
\
Dobesedna poševnica (` ').
NNN
Znak, katerega ASCII koda je NNN (oktalna).
Znak "", ki mu sledi kateri koli drug znak, se obravnava kot navaden znak, zato sta oba natisnjena.
%%
Znak dobesednega odstotka.
% a
Zadnji dostop datoteke datoteke v obliki, ki jo vrne funkcija C `ctime '.
% A k
Zadnji dostop do datoteke v obliki, ki jo določi k , ki je bodisi `@ 'bodisi direktiva za funkcijo C` strftime'. Možne vrednosti za k so navedeni spodaj; nekateri od njih morda niso na voljo na vseh sistemih, zaradi razlik v "strftime" med sistemi.
@
sekund od 1. januarja 1970, 00:00 GMT.
Časovna polja:
H
uro (00..23)
jaz
uro (01..12)
k
uro (0..23)
l
uro (1..12)
M
minuta (00..59)
str
lokalno AM ali PM
r
čas, 12-urno (hh: mm: ss AP M)
S
drugo (00..61)
T
čas, 24-urno (hh: mm: ss)
X
predstavitev časa v locale (H: M: S)
Z
časovni pas (npr. EDT) ali nič, če časovni pas ni določljiv
Polja za datum:
a
skrajšano ime dneva v danem jeziku (Sun..Sat)
A
lokalno ime dneva v tednu, spremenljiva dolžina (nedelja..saturday)
b
skrajšano ime meseca (Jan..Dec)
B
polno ime meseca, spremenljiva dolžina (januar ..december)
c
datum in ura lokalnega datuma (sob. nov. 04. 12:02:33 EST 1989)
d
dan v mesecu (01..31)
D
datum (mm / dd / yy)
h
enako kot b
j
dan leta (001..366)
m
mesec (01..12)
U
tedensko število leta z nedeljo kot prvi dan v tednu (00..53)
w
dan v tednu (0..6)
W
tedensko število let z ponedeljkom kot prvi dan v tednu (00..53)
x
predstavitev datuma v locale (mm / dd / yy)
y
zadnji dve števki leta (00..99)
Y
leto (1970 …)
% b
Velikost datoteke v 512-bajtnih blokih (zaokroženo).
% c
Zadnji čas spremembe statusa datoteke v obliki, ki jo vrne funkcija C `ctime '.
% C k
Zadnji čas spremembe statusa datoteke v obliki, ki jo določi k , kar je enako kot za% A.
% d
Globina datoteke v drevesu imenikov; 0 pomeni, da je datoteka argument za ukazno vrstico.
% f
Ime datoteke z odstranjenimi vodilnimi imeniki (samo zadnji element).
% F
Vrsta datotečnega sistema, v katerem je datoteka vključena; ta vrednost se lahko uporabi za -fstype.
% g
Ime skupine skupine ali številka ID skupine, če skupina nima imena.
% G
ID številske skupine datoteke.
% h
Vodilni imeniki imena datoteke (vsi, razen zadnjega elementa).
% H
Argument ukazne vrstice, pod katero je bila najdena datoteka.
%jaz
Številka inode datoteke (v decimalkah).
% k
Velikost datoteke v 1K blokih (zaokroženo).
% l
Objekt simbolne povezave (prazen niz, če datoteka ni simbolična povezava).
% m
Datoteki dovolilnic (v osmih).
% n
Število trdih povezav do datoteke.
% p
Ime datoteke.
% P
Ime datoteke z imenom argumenta ukazne vrstice, na podlagi katere je bilo odstranjeno.
% s
Velikost datoteke v bajtih.
% t
Zadnji čas spremembe datoteke v obliki, ki jo vrne funkcija C `ctime '.
% T k
Zadnji čas spremembe datoteke v obliki, ki jo določi k , kar je enako kot za% A.
% u
Uporabniško ime datoteke ali številčni ID uporabnika, če uporabnik nima imena.
% U
Številčni ID uporabnika datoteke.
Znak »%«, ki mu sledi katerikoli drug znak, je zavržen (vendar je natisnjen drugi znak).
-prena
Če -depth ni podan, res; ne spustite trenutnega imenika.Če je podan, je napačen; brez učinka. -Lj Prav; navesti trenutno datoteko v formatu "ls -dils" na standardni izhod. Število blokov je 1K blokov, razen če je nastavljena spremenljivka okolja POSIXLY_CORRECT, v tem primeru se uporabijo 512-bajtni bloki. Seznam vrstnega reda, ki se zmanjšuje: ( expr ) Prednost sile. ! expr Res je, če expr je napačna. -Ne expr Enako kot ! expr . expr1 expr2 In (implicitno); expr2 se ne ocenjuje, če expr1 je napačna. expr1 -a expr2 Enako kot expr1 expr2 . expr1 - in expr2 Enako kot expr1 expr2 . expr1 -o expr2 Ali; expr2 se ne ocenjuje, če expr1 je res. expr1 - ali expr2 Enako kot expr1 -o expr2 . expr1 , expr2 Seznam; oboje expr1 in expr2 se vedno ocenjujejo. Vrednost expr1 se zavrže; vrednost seznama je vrednost expr2 . najde / home-uporabnik joe
Poiščite vse datoteke pod imenikom / domom v lasti uporabnika joe. našli / usr -name * stat
Poiščite vse datoteke pod imeniku / usr, ki se konča v ».stat«. našli / var / spool -mtime +60
Poiščite vsako datoteko pod imenom / var / spool, ki je bila spremenjena pred več kot 60 dnevi. find / tmp -name core -type f -print | xargs / bin / rm -f
Poiščite datoteke poimenovanejedro v ali pod imenikom/ tmp in jih izbrišite.Upoštevajte, da bo to storilo nepravilno, če obstajajo imena datotek, ki vsebujejo nove vrstice, enojne ali dvojne narekovaje ali presledke. find / tmp -name jedro-tip f -print0 | xargs -0 / bin / rm -f
Poiščite datoteke poimenovanejedro v ali pod imenikom/ tmp in jih izbrišete, obdelujete imena datotek na tak način, da so imena datotek ali imenikov, ki vsebujejo enojne ali dvojne narekovaje, presledke ali nove linije, pravilno obdelana. Theime preskus pride predtip da bi se izognili klicanjustat (2) na vsaki datoteki. najti . -type f -exec datoteka '{}' ;
Zažene datoteko v vsaki datoteki v trenutnem imeniku ali pod njim. Upoštevajte, da so obloge priložene z enojnimi oznakami, da jih zaščitite pred tolmačenjem kot ločila med ukazno vrstico. Točka podpičja je podobno zaščitena z uporabo poševnice, čeprav ";" bi se lahko uporabili tudi v tem primeru. našli / (-perm -4000 -printf / root / suid.txt '% # m% u% p n' ), (-size + 100M -printf /root/big.txt '% -10s% p n' )
Preklopite datotečni sistem samo enkrat, tako da navedete datoteke in imenike v datoteki/root/suid.txt in velike datoteke v/root/big.txt. Poišči $ HOME -mtime 0
Poiščite datoteke v domačem imeniku, ki so bili spremenjeni v zadnjih 24 urah. Ta ukaz deluje tako, ker je čas, odkar je bila vsaka datoteka nazadnje spremenjena, razdeljena za 24 ur, preostanek pa je zavržen. To pomeni, da se ujemajo-mtime 0, bo morala datoteka imeti v preteklosti spremembo, ki je pred manj kot 24 urami. najti . -perm 664
Poiščite datoteke, ki so prebrale in pisale dovoljenje za njihovega lastnika in skupine, vendar lahko drugi uporabniki preberejo, vendar ne pišejo. Datoteke, ki izpolnjujejo ta merila, imajo pa druge nastavljene bite (na primer, če lahko nekdo izvrši datoteko), ne bodo ujemali. najti . -perm -664
Poiščite datoteke, ki so prebrale in pisale dovoljenje za lastnika in skupino ter katere druge uporabnike lahko preberejo, ne glede na prisotnost kakršnih koli dodatnih dovolilnic (na primer izvršljivega bitja). To se bo ujemalo z datoteko, ki ima na primer način 0777. najti . -perm / 222
Poiščite datoteke, ki jih je mogoče zapisati nekdo (njihov lastnik ali njihova skupina ali kateri koli drugi). najti . -perm / 220 najti . -perm / u + w, g + w najti . -perm / u = w, g = w
Vsi trije ukazi naredijo isto stvar, prvi pa uporablja osmiško predstavitev datoteke, drugi dve pa simbolično obliko. Ti ukazi vse iščejo datoteke, ki jih lahko zapisuje njihov lastnik ali njihova skupina. Datoteke ni treba zapisovati tako lastnika kot skupine, ki se ujema z njimi; bodisi bo. najti . -perm -220 najti . -perm -g + w, u + w
Oba ukaza naredita isto stvar; poiščite datoteke, ki jih lahko zapisujejo njihovi lastniki in njihova skupina. najti . -perm -444 -perm / 222! -perm / 111 najti . -perm -a + r -perm / a + w! -perm / a + x
Ti dve ukazi iščejo datoteke, ki jih je mogoče beriti za vsakega (-perm -444 ali -perm -a + r), imajo vsaj nastavljene bitne nastavitve (-perm / 222 ali -perm / a + w), vendar niso izvedljive za vsakogar (! -perm / 111 in! -perm / a + x) Pomembno: Uporabi človek ukaz ( % človek ), da vidite, kako se na vašem računalniku uporablja ukaz.Operaterji
Primeri













