Príkazy Linux a Unix Nájsť spustí vyhľadávanie súborov v hierarchii adresárov.
Syntax pre Nájsť príkaz:
nájsť path … expression
popis
Táto manuálová stránka dokumentuje verziu GNU Nájsť , Príkaz Nájsť vyhľadáva strom adresárov zakorenený pri každom danom názve súboru vyhodnotením daného výrazu zľava doprava podľa pravidiel prednosti (pozri časť Operátori nižšie), kým nie je známy výsledok; inými slovami, ľavá strana je falošná a operácie, pravda pre alebo , kedykoľvek Nájsť presunie na nasledujúci názov súboru.
Prvý argument začína:
- -
- ( alebo),
- !
je považovaný za začiatok výrazu; všetky argumenty pred ním sú cesty k hľadaniu a akékoľvek argumenty po ňom sú zvyšok výrazu. Ak nie sú uvedené žiadne cesty, použije sa aktuálny adresár. Ak nie je uvedený žiadny výraz, výraz -print sa používa.
Nájsť príkazy ukončí so stavom 0, ak sú všetky súbory úspešne spracované, väčšie ako 0, ak sa vyskytnú chyby.
výrazov
Výraz je tvorený voľbami (ktoré ovplyvňujú celkovú operáciu namiesto spracovania konkrétneho súboru a vždy vrátia true), testy (ktoré vrátia pravú alebo falošnú hodnotu) a akcie (ktoré majú vedľajšie účinky a vrátia pravdivú alebo falošná hodnota), všetky oddelené prevádzkovateľmi. Výraz -a sa predpokladá, keď je obsluha vynechaná. Ak výraz neobsahuje žiadne iné než akcie -prune , potom -print sa vykonáva na všetkých súboroch, pre ktoré je tento výraz pravdivý.
možnosti
Všetky možnosti sa vždy vrátia. Vždy nadobúdajú účinnosť, skôr než sa spracúvajú iba vtedy, keď sa dosiahne ich miesto vo vyjadrení. Z dôvodu jasnosti je preto najlepšie umiestniť ich na začiatok výrazu.
| -daystart | Čas merania (pre -amin, -atime, -cmin, -time, -mmin, a -mtime ) od začiatku dnešného dňa skôr ako pred 24 hodinami. |
| -depth | Spracujte obsah každého adresára pred samotným adresárom. |
| -follow | Odporučiť symbolické odkazy. implikuje -noleaf . |
| -Pomoc alebo --Pomoc | Vytlačiť súhrnné využitie príkazového riadku Nájsť a výstupu. |
| -maxdepth Číslo | Zostupujte na väčšinu počtu úrovní (negatívne celé číslo) adresárov pod argumentmi príkazového riadku. Výraz -maxdepth 0 znamená použiť iba testy a akcie na argumenty príkazového riadku. |
| -mindepth počet | Nepoužívajte žiadne testy alebo akcie na úrovni nižšej ako je počet (ne záporné celé číslo). Výraz -mindepta 1 znamená spracovanie všetkých súborov okrem argumentov príkazového riadku. |
| -Montážní | Adresáre neskartujte na iných súborových systémoch. Alternatívny názov pre -xdev , pre kompatibilitu s niektorými inými verziami Nájsť . |
| -noleaf | Nepoužívajte optimalizáciu predpokladať, že adresáre obsahujú menej subdirektorov než ich počet pevných odkazov. * |
| -version alebo --version | Vytlačte Nájsť číslo verzie a výstup. |
| -xdev | Adresáre neskartujte na iných súborových systémoch. |
* Táto možnosť je potrebná pri vyhľadávaní súborových systémov, ktoré nedodržiavajú konvenciu Unix adresár-link, ako sú súborové systémy CD-ROM alebo MS-DOS alebo body pripojenia zväzku AFS. Každý adresár na bežnom Unixovom súborovom systéme má najmenej 2 tvrdé odkazy: jeho názov a jeho. (obdobie). Okrem toho majú svoje podadresáre (ak existujú). záznam pripojený k tomuto adresáru.
Kedy Nájsť skúma adresár po tom, čo zadal dva menej podadresárov ako počet odkazov v adresári, ale vie, že ostatné položky v adresári nie sú adresári ( krídlo súbory v adresári). Ak je potrebné preskúmať len názvy súborov, nie je potrebné ich oznamovať; to znamená výrazné zvýšenie rýchlosti vyhľadávania.
skúšky
Číselné argumenty je možné špecifikovať ako:
| + n | Pre viac ako n. |
| -n | Za menej ako n. |
| n | Presne n. |
| amin | Súbor bol naposledy sprístupnený n pred pár minútami. |
| -anwer súbor | Súbor bol naposledy prístupný neskôr ako súbor bola zmenená. -anwer je ovplyvnený -sledovať len vtedy, keď-nasleduje pred príchodom na príkazovom riadku. |
| -atime n | Súbor bol naposledy sprístupnený n * Pred 24 hodinami. |
| -cmin n | Stav súboru bol naposledy zmenený n pred pár minútami. |
| -cnewer súbor | Stav súboru bol naposledy zmenený neskôr, ako bol súbor upravený.- cnewer je ovplyvnená -follow iba ak -follow prichádza predtým -cnewer na príkazovom riadku. |
| -čas n | Stav súboru bol naposledy zmenený n * Pred 24 hodinami. |
| -empty | Súbor je prázdny a je buď bežný súbor alebo adresár. |
| -false | Vždy nepravdivé. |
| -fstype typ | Súbor je na súborovom systéme určeného typu. Platné typy súborových systémov sa líšia v rôznych verziách systému Unix. neúplný zoznam typov súborových systémov, ktoré sú akceptované v niektorých verziách Unixu alebo inej, je: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Pomocou príkazu -printf môžete pomocou smernice% F zobraziť typy súborových systémov. |
| -gid n | ID číselnej skupiny súboru je n . |
| -group gname | Súbor patrí do skupiny gname (povolená číselná skupina). |
| -love vzor | Rovnako ako -iname, ale zápas nie je citlivý na veľké a malé písmená. |
| -iname vzor | Páči sa mi to -názov , ale v zápase nie sú citlivé na veľké a malé písmená. Napríklad vzory fo * a F ?? názvy súborov foo , FOO , foo , foo , atď. |
| -inum n | Súbor má inode číslo n . |
| -path vzor | Páči sa mi to -path , ale v zápase nie sú citlivé na veľké a malé písmená. |
| -regex vzor | Rovnako ako -regex, ale zápas nie je citlivý na veľké a malé písmená. |
| -links n | Súbor má n odkazy. |
| -informovať vzor | Súbor je symbolický odkaz, ktorého obsah zodpovedá vzoru škrupiny. Metacharactery sa neliečia / alebo . zvlášť. |
| -mmin n | Údaje súboru boli naposledy upravené n pred pár minútami. |
| -mtime n | Údaje súboru boli naposledy upravené n * Pred 24 hodinami. |
| -name vzor | Základ názvu súboru (cesta s vedúcimi adresármi odstránená) zodpovedá vzoru škrupiny. Metacharaktery (*, ?, a ) nezodpovedajú a . na začiatku základného názvu. Ak chcete ignorovať adresár a súbory pod ním, použite -prune ; pozri príklad v popise -path . |
| -newer súbor | Súbor bol zmenený neskôr ako súbor , Výraz -newer je ovplyvnená -follow iba ak -follow prichádza predtým -newer na príkazovom riadku. |
| -nouser | Žiadny používateľ nezodpovedá číselnému používateľskému ID súboru. |
| -nogroup | Žiadna skupina nezodpovedá ID číselnej skupiny súboru. |
| -spôsob vzor | Názov súboru zodpovedá vzoru škrupiny vzor , Metacharactery sa neliečia / alebo . špeciálne; tak, napríklad,Nájsť . -path "./sr*sc vytlačí záznam pre adresár s názvom ./src/misc (ak existuje). Ak chcete ignorovať celý strom adresárov, použite -prune skôr než skontrolovať každý súbor v strome. Napríklad, ak chcete preskočiť adresár src / emacs a všetky súbory a adresáre pod ním a vytlačiť mená ostatných nájdených súborov, urobte niečo takéto:Nájsť . -path "./src/emacs '-prune -o -print |
| -perm režim | Súbory oprávnenia súboru sú presne Režim (osmičkové alebo symbolické). Symbolické režimy používajú režim 0 ako miesto odchodu. |
| -perm-mode | Všetky bity povolenia Režim sú nastavené pre súbor. |
| -perm + režim | Ktorékoľvek povolené bity Režim sú nastavené pre súbor. |
| -regex pattern | Názov súboru zodpovedá regulárnemu výrazu vzor , Toto je zhoda na celej ceste, nie hľadanie. Ak chcete napríklad priradiť súbor s názvom ./fubar3, môžete použiť regulárny výraz . * Bar. alebo *. B. * 3, ale nie b. * r3. |
| -size n bckw | Súbor používa n jednotiek priestoru. Jednotky majú štandardne 512 bajtových blokov alebo ak b nasleduje n , bajty, ak nasleduje c n , kilobajty, ak nasleduje k n , alebo 2-byte slová, ak w nasleduje n , Veľkosť nezahŕňa nepriame bloky, ale počet blokov v riedke súbory, ktoré nie sú skutočne priradené. |
| -true | Vždy pravda. |
| -typ c | Súbor je typu C : |
| b | Zablokovanie (rezervované) špeciálne |
| C | Znak (nebuffered) špeciálny |
| d | adresár |
| p | Pomenované potrubie (FIFO) |
| F | Pravidelný súbor |
| l | Symbolický odkaz |
| s | zásuvka |
| D | dvere (Solaris) |
| -uid n | Číselné ID používateľa súboru je n . |
| -used n | Súbor bol naposledy sprístupnený n dní po jej poslednom zmene statusu. |
| -user uname | Súbor je vo vlastníctve používateľa UNAM (povolené číselné používateľské meno). |
| -xtype c | Rovnake ako -type pokiaľ súbor nie je symbolickým odkazom. Pre symbolické odkazy: ak -follow nebol daný, platí, ak je súbor odkazom na typ súboru C ; ak -follow bol daný, pravda, ak C je l. Inými slovami, pre symbolické väzby, -xtype skontroluje typ súboru -type nekontroluje. |
Akcia
-exec príkaz ;
popraviť príkaz ; true, ak je vrátený stav 0. Všetky nasledujúce argumentyNájsť sú považované za argumenty pre velenie, kým argument, ktorý sa skladá z ";" sa vyskytuje. Reťazec `{} 'sa nahradí aktuálnym názvom súboru, ktorý sa spracováva všade, kde sa vyskytuje v argumentoch príkazu, a to nielen v argumentoch, kde je sám, ako v niektorých verziáchNájsť, Obidva tieto konštrukcie môžu byť potrebné uniknúť (pomocou ` ') alebo citované, aby ich chránili pred expanziou pomocou shell. Príkaz sa vykoná v počiatočnom adresári.
-fls súbor
pravda; ako -l, ale napísať súbor ako -fprint.
-fprint súbor
pravda; vytlačte celý súbor do súboru súbor , ak súbor neexistuje, keďNájsť je spustený, je vytvorený; ak existuje, je skrátená. Názvy súborov `` / dev / stdout '' a `` dev / stderr '' sa spracúvajú špeciálne; vzťahujú sa na štandardný výstup a výstup štandardnej chyby.
-fprint0 súbor
pravda; ako -print0, ale písať súbor ako -fprint.
-fprintf súbor formát
pravda; ako -printf, ale napíšte do súbor ako -fprint.
-OK príkaz ;
Rovnako ako -exec, ale spýtajte sa najprv používateľa (na štandardnom vstupe); ak odpoveď nezačína s "y" alebo "Y", nespúšťajte príkaz a nevráťte nepravdivé.
pravda; vytlačte celý názov súboru na štandardnom výstupe, za ktorým nasleduje nový riadok.
-print0
pravda; vytlačte celý názov súboru na štandardnom výstupe a nasleduje nulový znak.To umožňuje, aby názvy súborov, ktoré obsahujú nové riadky, boli správne interpretované programami, ktoré spracovávajúNájsť výkon.
-printf formát
pravda; vytlačiť formát na štandardnom výstupe, tlmočenie smerníc ` 'escapes a`%'. Šírky a presné polia je možné špecifikovať ako pri funkcii `printf 'C. Na rozdiel od -print, -printf nepridá nový riadok na konci reťazca. Úniky a smernice sú:
a
Budík zvonček.
b
Backspace.
c
Zastavte okamžite tlač z tohto formátu a vyplachujte výstup.
f
Form feed.
n
Nový riadok.
r
Prepravný doklad.
t
Horizontálna karta.
v
Vertikálna karta.
\
Doslovné lomítko (` ').
NNN
Znak, ktorého ASCII kód je NNN (osmičkový).
Znak "` ", za ktorým nasleduje akýkoľvek iný znak, sa považuje za obyčajný znak, takže sú oboje vytlačené.
%%
Doslovné percento znamenie.
% A
Posledný čas prístupu súboru vo formáte vrátenom funkciou C `ctime '.
% A k
Posledný čas prístupu súboru vo formáte určenom používateľom k , ktorý je buď `@ ', alebo smernica pre funkciu C` strftime'. Možné hodnoty pre k sú uvedené nižšie; niektoré z nich nemusia byť dostupné vo všetkých systémoch kvôli rozdielom v systéme "strftime" medzi systémami.
@
sekúnd od 1. januára 1970, 00:00 GMT.
Časové polia:
H
hodina (00..23)
ja
hodina (01..12)
k
hodina (0..23)
l
hodina (1..12)
M
minúta (00..59)
p
AM alebo PM miestneho prostredia
r
čas, 12 hodín (hh: mm: ss AP M)
S
druhý (00..61)
T
čas, 24 hodín (hh: mm: ss)
X
časové zastúpenie lokality (H: M: S)
Z
časové pásmo (napr. EDT), alebo nič, ak nie je možné určiť časové pásmo
Polia dátumu:
miestny skrátený názov dňa v týždni (Sun..Sat)
miestne názov celého dňa, variabilná dĺžka (nedeľa, sobota)
b
miestny skrátený názov mesiaca (Jan..Dec)
B
miestny názov plného mena, premenná dĺžka (január, december)
C
dátum a čas lokality (So Nov 04 12:02:33 EST 1989)
d
deň v mesiaci (01..31)
D
dátum (mm / dd / rr)
hod
rovnaké ako b
j
deň v roku (001..366)
m
mesiac (01..12)
U
týždeň číslo roku s nedeľou ako prvý deň v týždni (00..53)
w
deň v týždni (0..6)
W
týždeň číslo roka s pondelkom ako prvý deň v týždni (00..53)
X
reprezentácia dátumu lokality (mm / dd / rr)
y
posledné dve číslice roku (00..99)
Y
rok (1970 …)
% b
Veľkosť súboru v blokoch s veľkosťou 512 bajtov (zaokrúhlené nahor).
% c
Posledný čas zmeny stavu súboru vo formáte vrátenom funkciou C `ctime '.
% C k
Posledný čas zmeny stavu súboru vo formáte určenom používateľom k , čo je rovnaké ako pre% A.
% d
Hĺbka súboru v adresári; 0 znamená, že súbor je argument príkazového riadku.
% f
Názov súboru s odstránenými vedúcimi adresármi (iba posledný prvok).
% F
Typ súborového systému, na ktorom je súbor zapnutý; táto hodnota sa môže použiť pre -ftype.
% g
Názov skupiny súborov alebo identifikátor číselnej skupiny, ak nemá skupina žiadny názov.
% G
ID číselnej skupiny súboru.
% h
Vedúce adresáre názvu súboru (všetky okrem posledného prvku).
% H
Argument príkazového riadku, pod ktorým bol nájdený súbor.
% i
Číslo súboru inode (v desatinnom čísle).
% k
Veľkosť súboru v blokoch 1K (zaokrúhlené nahor).
% l
Objekt symbolického odkazu (prázdny reťazec, ak súbor nie je symbolický odkaz).
% m
Súbory povolenia bitov (v osmičke).
% n
Počet pevných odkazov na súbor.
% p
Názov súboru.
% P
Názov súboru s názvom argumentu príkazového riadku, pod ktorým bol odstránený.
% s
Veľkosť súboru v bajtoch.
% t
Posledný čas úpravy súboru vo formáte vrátenom funkciou C `ctime '.
% T k
Posledný čas úpravy súboru vo formáte určenom používateľom k , čo je rovnaké ako pre% A.
% u
Používateľské meno súboru alebo číselné používateľské ID, ak používateľ nemá žiadne meno.
% U
Číslo číselného súboru súboru.
Znak "%", za ktorým nasleduje iný znak, sa vylúči (ale vytlačí sa druhý znak).
-prune
Ak -depth nie je daná, pravda; neklesajúci aktuálny adresár.Ak je zadaná - falošná; bez efektu. -Je pravda; zoznam aktuálneho súboru vo formáte `ls -dils 'na štandardnom výstupe. Počet blokov je 1K blokov, pokiaľ nie je nastavená premenná prostredia POSIXLY_CORRECT, v takom prípade sa použijú bloky s veľkosťou 512 bajtov. Zoradené v poradí klesajúcich priorít: ( expr ) Prednosť sily. ! expr Pravda, či expr je nepravdivé. -not expr Rovnaké ako ! expr . expr1 expr2 A (implicitne); expr2 sa nehodnotí, či expr1 je nepravdivé. expr1 -a expr2 Rovnaké ako expr1 expr2 . expr1 -a expr2 Rovnaké ako expr1 expr2 . expr1 -o expr2 alebo; expr2 sa nehodnotí, či expr1 je pravda. expr1 -alebo expr2 Rovnaké ako expr1 -o expr2 . expr1 , expr2 Zoznam povolených; oba expr1 a expr2 sú vždy hodnotené. Hodnota expr1 je zlikvidovaná; hodnota zoznamu je hodnota expr2 . nájsť / home-user joe
Nájdite každý súbor v adresári / doméne, ktorý vlastní používateľ joe. nájsť / usr -name * stat
Nájdite každý súbor pod adresárom / usr končiac v ".stat". nájsť / var / spool -mtime +60
Nájdite každý súbor pod adresárom / var / spool, ktorý bol upravený pred viac ako 60 dňami. nájsť / tmp -name core -type f -print | xargs / bin / rm -f
Vyhľadajte súbory s názvomjadro v alebo pod adresárom/ tmp a odstráňte ich.Všimnite si, že to bude fungovať nesprávne, ak existujú názvy súborov obsahujúce nové riadky, jednoduché alebo dvojité úvodzovky alebo medzery. nájsť / tmp -name core -type f -print0 | xargs -0 / bin / rm -f
Vyhľadajte súbory s názvomjadro v alebo pod adresárom/ tmp a ich odstránenie, spracovanie názvov súborov takým spôsobom, že názvy súborov alebo adresárov obsahujúce jednoduché alebo dvojité úvodzovky, medzery alebo nové riadky sú správne spracované.-názov test predchádza-type test, aby ste sa vyhli nutnosti volaniastat (2) na každom súbore. Nájsť . súbor typu f-exec '{}' ;
Spustí súbor v každom súbore v aktuálnom adresári alebo pod ním. Všimnite si, že závorky sú uzavreté v jednoduchých úvodzovkách, aby ich chránili pred interpretáciou ako interpunkcia skriptu pre shell. Bodkočiarka je podobne chránená použitím spätného lomka, hoci ';' v tomto prípade mohli byť použité. nájsť / (-perm -4000 -fprintf /root/suid.txt '% # m% u% p n' ), (-size + 100M -fprintf /root/big.txt '% -10s% p n' )
Prejdite súborový systém len raz, pričom zoznam súborov a adresárov nastavíte/root/suid.txt a do veľkých súborov/root/big.txt. nájsť $ HOME -time 0
Vyhľadajte súbory vo vašom domovskom adresári, ktoré boli upravené za posledných dvadsaťštyri hodín. Tento príkaz pracuje týmto spôsobom, pretože čas posledného modifikácie každého súboru je rozdelený na 24 hodín a zvyšok sa vyradí. To znamená, že na zápas-mtime 0, súbor bude musieť mať v minulosti úpravu, ktorá je pred menej ako 24 hodinami. Nájsť . -perm 664
Vyhľadajte súbory, ktoré majú oprávnenie na čítanie a písanie pre vlastníka a skupinu, ale ostatní používatelia môžu čítať, ale nepíšu. Súbory, ktoré spĺňajú tieto kritériá, ale majú iné nastavené bity oprávnení (napríklad ak niekto môže spustiť súbor) sa nebudú zhodovať. Nájsť . -perm -664
Vyhľadajte súbory, ktoré majú oprávnenie na čítanie a zápis vlastníka a skupiny a ktoré ostatní používatelia dokážu čítať, bez ohľadu na prítomnosť akýchkoľvek bitov navyše povolených (napríklad spustiteľný bit). To sa zhoduje so súborom, ktorý má napríklad režim 0777. Nájsť . -perm / 222
Vyhľadajte súbory, ktoré je možné zapisovať niekto (ich vlastník, ich skupina alebo niekto iný). Nájsť . -perm / 220 Nájsť . -perm / u + w, g + w Nájsť . -perm / u = w, g = w
Všetky tri príkazy robia to isté, ale prvá používa osmičkové znázornenie režimu súborov a ostatné dva používajú symbolický tvar. Tieto príkazy vyhľadávajú všetky súbory, ktoré sú zapisovateľné buď vlastníkom alebo ich skupinou. Súbory nemusia byť zapisovateľné ako vlastníkom, tak aj skupinou, ktorá sa má zhodovať. buď to urobí. Nájsť . -perm -220 Nájsť . -perm -g + w, u + w
Obidva tieto príkazy robia to isté; hľadať súbory, ktoré sú zapisovateľné ako vlastníkom, tak ich skupinou. Nájsť . -perm -444 -perm / 222! -perm / 111 Nájsť . -perm -a + r -perm / a + w! -perm / a + x
Tieto dva príkazy vyhľadávajú súbory, ktoré sú čitateľné pre každého (-perm -444 alebo -perm -a + r), majú aspoň nastavený bit pre zápis (-perm / 222 alebo -perm / a + w), ale nie sú spustiteľné pre každého (! -perm / 111 a / -perm / a + x) dôležité: Použi muž príkaz ( % muž ), aby ste zistili, ako sa príkaz používa vo vašom konkrétnom počítači.operátori
Príklady









![Ako otestovať rýchlosť internetu [jednoduché, menej ako 5 minút] Ako otestovať rýchlosť internetu [jednoduché, menej ako 5 minút]](https://i.go-travels.com/img/how-to/how-to-test-your-internet-speed.png)


