Kutumia Linux na Amri ya Unix: tafuta

Amri ya Linux na Unix hupata unatafuta utafutaji wa faili katika uongozi wa saraka.

Syntax kwa amri ya kupata :

tafuta [njia ...] [kujieleza]

Maelezo

Ukurasa huu wa mwongozo unaandika hati ya GNU ya kupata . Amri hutafuta utafutaji wa saraka uliozingatiwa kwenye jina la faili zote kwa kuzingatia maneno yaliyopewa kutoka upande wa kushoto kwenda kulia, kwa mujibu wa sheria za utangulizi (tazama sehemu ya Waendeshaji chini), hadi matokeo yatambuliwe; kwa maneno mengine, upande wa kushoto ni uongo na uendeshaji, kwa kweli au , kwa wakati gani huenda unasababisha jina la faili inayofuata.

Shauri la kwanza linaloanza na:

inachukuliwa kuwa mwanzo wa maneno; hoja yoyote kabla ni njia za kutafuta, na hoja yoyote baada ya maneno hayo yote. Ikiwa hakuna njia zinazotolewa, saraka ya sasa hutumiwa. Ikiwa hakuna neno linalojitokeza, maneno- alama yanatumika.

Amri ya kupata inatoka kwa hali ya 0 ikiwa faili zote zinasindika kwa mafanikio, zaidi ya 0 ikiwa makosa hutokea.

Maneno

Maneno hayo yanajumuisha chaguzi (ambazo zinaathiri operesheni ya jumla badala ya usindikaji wa faili fulani, na kurudi kweli), vipimo (ambavyo vinarudi thamani ya kweli au ya uongo), na vitendo (vinavyo na madhara na kurudi kweli au thamani ya uongo), yote yaliyotengwa na waendeshaji. Maonyesho - na inadhaniwa ambapo mtumiaji ameondolewa. Ikiwa maneno hayana matendo mengine yanayopendeza-uchapishaji , kisha -print inafanywa kwenye mafaili yote ambayo maneno hayo ni ya kweli.

Chaguo

Chaguo zote hurudi kweli. Daima huwa na athari, badala ya kutafanywa tu wakati mahali pao kwenye neno hilo linafikia. Kwa hiyo, kwa uwazi, ni bora kuwaweka katika mwanzo wa maneno.

siku ya siku Pima nyakati (kwa- yaini, -ati, -cmin, -ctime, -mmin, na -mtime ) tangu mwanzo wa leo badala ya saa 24 zilizopita.
-katika Tengeneza yaliyomo ya kila saraka kabla ya saraka yenyewe.
-fuata Viunganisho vya kutofautiana. Inasema -noleaf .
-help au --help Chapisha muhtasari wa matumizi ya mstari wa amri ya kupata na kuondoka.
-maxdepth [namba] Nenda kwa ngazi nyingi (zisizo hasi hasi) ya kumbukumbu chini ya hoja ya amri ya mstari. Mazungumzo -kimbizi 0 inamaanisha tu kutumia vipimo na vitendo kwa hoja za mstari wa amri.
-mindepth [namba] Usitumie vipimo au vitendo vyovyote katika ngazi chini ya nambari (integu isiyo ya hasi). Neno - maana 1 linamaanisha mchakato wa faili zote isipokuwa hoja za mstari wa amri.
-a Usishuke directories kwenye mfumo mwingine wa faili. Jina lingine la-- ddev , kwa utangamano na matoleo mengine ya kupata .
-noleaf Usiboresha kwa kudhani kuwa vichopo hizi zina vyenye chini ndogo zaidi ya vijamii kuliko hesabu yao ya kiungo ngumu. *
-version au toversion Chapisha nambari ya toleo la kupata na uondoke.
-ddev Usishuke directories kwenye mfumo mwingine wa faili.

* Chaguo hili linahitajika wakati wa kutafuta mfumo wa faili ambao haufuatii mkataba wa directory ya kiungo cha Unix, kama vile CD-ROM au mfumo wa faili wa MS-DOS au pointi za mlima wa kiasi cha AFS. Kila saraka kwenye faili ya kawaida ya Unix ina angalau 2 viungo ngumu: jina lake na yake . (kipindi) kuingia. Zaidi ya hayo, subdirectories yake (kama ipo) kila mmoja ana .. kuingia inayohusishwa na saraka hiyo.

Unapopata ni kuchunguza saraka, baada ya kuainisha safu ndogo ndogo ndogo za chini kuliko orodha ya kiungo cha saraka, inajua kwamba mambo yote yaliyomo katika saraka ni yasiyo ya directories ( majani ya majani katika saraka ya saraka). Ikiwa majina ya faili tu yanahitajika kuchunguzwa, hakuna haja ya sheria yao; hii inatoa ongezeko kubwa katika kasi ya utafutaji.

Majaribio

Nambari za nambari zinaweza kutajwa kama:

+ n Kwa zaidi kuliko n.
-n Kwa chini ya n.
n Kwa n.
-amin n Faili ilifikia mwisho dakika chache zilizopita.
-anawer [faili] Faili ilifikia mwisho hivi karibuni kuliko faili iliyobadilishwa. -anawer inathiriwa na-kufuata tu ikiwa-kufuata inakuja kabla-sawa na mstari wa amri.
-atime n Faili ilifikia mwisho n * masaa 24 iliyopita.
-cmin n Hali ya faili ilibadilishwa mwisho dakika chache zilizopita.
-pnewer [faili] Hali ya faili ilibadilika hivi karibuni zaidi kuliko faili iliyobadilishwa.
- cnewer inathiriwa na - kufuata tu kama -fuatayo inakuja kabla-ya mstari kwenye mstari wa amri.
-chunguzi n Hali ya faili ilibadilishwa mwisho n * masaa 24 iliyopita.
hupunguzwa Faili ni tupu na ni ama faili ya kawaida au saraka.
-false Daima uongo.
-fstype [aina] Faili iko kwenye mfumo wa faili wa aina maalum. Aina halali ya mfumo wa faili hutofautiana kati ya matoleo tofauti ya Unix; orodha isiyojakamilika ya aina za faili ambazo zinakubalika kwenye toleo fulani la Unix au nyingine ni: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Unaweza kutumia -printf na maelekezo ya% F ili kuona aina ya mifumo yako ya faili.
-gid n Kitambulisho cha kikundi cha faili cha nambari ni n .
-group [gname] Faili ni ya kikundi cha gname (ID ya kikundi cha nambari ya kuruhusiwa).
- jina lake [mfano] Kama - jina, lakini mechi ni kesi isiyofaa.
-name [mfano] Kama jina, lakini mechi ni kesi isiyofaa. Kwa mfano, mifumo ya * na F? Sambamba majina ya faili Foo , FOO , foo , fOo , nk.
-in n Faili inode namba n .
-pati [mfano] Kama- njia , lakini mechi ni kesi isiyofaa.
-regex [muundo] Kama-letx, lakini mechi ni kesi isiyofaa.
-tazama n Picha ina viungo.
-lname [mfano] Faili ni kiungo cha mfano ambacho maudhui yake yanafanana na muundo wa shell. Wasimamizi hawafanyi / au . hasa.
-mmin n Data ya faili ilibadilishwa mwisho dakika chache zilizopita.
-mtime n Data ya faili ilikuwa iliyopita iliyopita n * 24 masaa iliyopita.
-name [mfano] Msingi wa jina la faili (njia na vichwa vya kuongoza zimeondolewa) inalingana na muundo wa shell. Mitambo ( * , ? , Na [] ) haifani na . mwanzoni mwa jina la msingi. Kupuuza saraka na faili chini yake, tumia- kupiga ; tazama mfano katika maelezo ya- njia .
-newer [faili] Faili ilibadilishwa hivi karibuni zaidi kuliko faili . Neno -newer inathirika na- kufuata tu kama -fuatayo inakuja kabla- tena kwenye mstari wa amri.
-nouser Hakuna mtumiaji anayefanana na Kitambulisho cha mtumiaji wa faili.
-nogroup Hakuna kundi linalingana na Kitambulisho cha kikundi cha faili cha faili.
-pati [mfano] Jina la faili linalingana na muundo wa muundo wa shell. Wasimamizi hawafanyi / au . hasa; hivyo, kwa mfano, fata. -path './sr*sc kuchapisha kuingia kwa saraka inayoitwa ./src/misc (ikiwa kuna moja). Kwa kupuuza mti wa saraka nzima, tumia -kupiga badala ya kuangalia kila faili kwenye mti. Kwa mfano, kuruka src / emacs saraka na mafaili yote na vichwa chini yake, na uchapishe majina ya faili zingine zilizopatikana, fanya kitu kama hiki: tafuta. -pati './src/emacs' -punta -o-alama
-perm [mode] Bits ya ruhusa ya faili ni sawa [mode] (octal au mfano). Njia za mfano zinazotumia mode 0 kama hatua ya kuondoka.
-perm-mode Bits zote za ruhusa [mode] zimewekwa kwa faili.
-perm + mode Yoyote ya bits ya ruhusa [mode] imewekwa kwa faili.
-rekani [mfano] Jina la faili linalingana na muundo wa kujieleza mara kwa mara. Hii ni mechi kwenye njia nzima, si tafuta. Kwa mfano, ili kufanana faili iliyoitwa ./fubar3, unaweza kutumia kujieleza mara kwa mara . * Bar. au . * b. * 3 , lakini si b. * r3 .
-size n [bckw] Faili inatumia n vitengo vya nafasi. Vitengo ni blocks 512-byte kwa default au kama ifuatavyo n , bytes kama c ifuatavyo n , kilobytes kama k ifuatavyo n , au 2-byte maneno kama w ifuatavyo n . Ukubwa haukuhesabu vitalu vya moja kwa moja, lakini huhesabu vitalu katika faili ambazo hazijatengwa.
-na kweli Daima ni kweli.
- c Faili ni ya aina c :
b Piga maalum (kupigwa)
c Tabia (haijulibiwa) maalum
d Directory
p Aitwaye bomba (FIFO)
f Faili ya kawaida
l Kiungo cha mfano
s Tundu
D mlango (Solaris)
-uidha n Kitambulisho cha mtumiaji wa faili ni n .
sio n Faili ya mwisho ilifikia siku n baada ya hali yake iliyopita.
-sana uname Faili inamilikiwa na mtumiaji uname (kitambulisho cha mtumiaji wa nambari kinaruhusiwa).
-xtype c Hali sawa na - isipokuwa faili ni kiungo cha mfano. Kwa viungo vya mfano: ikiwa- kufuata haikupewa , kweli ikiwa faili ni kiungo na faili ya aina c ; ikiwa- kufuata imetolewa, kweli kama c ni l. Kwa maneno mengine, kwa viungo vya mfano,
-xtype huntafuta aina ya faili ambayo -sipo haina kuangalia.

Vitendo

amri ya -exec;

Fanya amri ; kweli ikiwa hali ya 0 inarudi. Masuala yote yafuatayo ya kupata yanachukuliwa kuwa hoja kwa amri mpaka hoja inayojumuisha `; ' hukutana. Kamba `{} 'inabadilishwa na jina la faili la sasa linalotumiwa kila mahali linapotokea katika hoja za amri, sio tu katika hoja ambapo ni peke yake, kama katika baadhi ya matoleo ya kupata . Vipengele vyote viwili vinaweza kutoroka (pamoja na `\ ') au kunukuliwa ili kuwalinda kutokana na upanuzi na shell. Amri inatekelezwa katika saraka ya kuanzia.

-faili faili

Kweli; kama -ls lakini kuandikia kwa faili kama -print.

Faili ya picha

Kweli; uchapisha jina kamili la faili katika faili ya faili . Ikiwa faili haipo wakati kupata unapotumika, inaloundwa; ikiwa ipo, ni truncated. Majina ya faili `` / dev / stdout '' na `` dev / stderr '' yanashughulikiwa hasa; wao hutaja pato la kawaida na pato la kawaida la makosa, kwa mtiririko huo.

-fprint0 faili

Kweli; kama -print0 lakini uandike faili kama -print.

Faili ya faili ya fprintf

Kweli; kama -printf lakini uandike faili kama -print.

-ok amri ;

Kama -exec lakini muulize mtumiaji kwanza (kwenye pembejeo ya kawaida); ikiwa majibu hayakuanza na `y 'au' Y ', usifanye amri, na ureje uongo.

-print

Kweli; uchapisha jina kamili la faili kwenye pato la kawaida, ikifuatiwa na mstari mpya.

-print0

Kweli; uchapisha jina kamili la faili kwenye pato la kawaida, ikifuatiwa na tabia isiyo ya kawaida. Hii inaruhusu majina ya faili yaliyo na vichwa vya habari ili kutafsiriwa kwa usahihi na mipango inayofanya pato la kupata .

format -printf

Kweli; kuchapisha muundo kwenye pato la kawaida, kutafsiri `` inapuka 'na'% 'maelekezo. Urefu wa shamba na maelekezo yanaweza kutajwa kama na 'printf' C kazi. Tofauti na -printf, -printf haziongezee tarehe mpya wakati wa kamba. Safari na maelekezo ni:

\ a

Kengele ya alarm.

\ b

Backspace.

\ c

Acha uchapishaji kutoka kwa fomu hii mara moja na ufute pato.

\ f

Fomu ya kulisha.

\ n

Newline.

\ r

Rejea ya kurudi.

\ t

Tabia ya usawa.

\ v

Tani ya wima.

\\

Upungufu halisi (`\ ').

\ NNN

Tabia ambayo Msimbo wa ASCII ni NNN (octal).

Tabia `` 'ikifuatiwa na tabia nyingine yoyote inatibiwa kama tabia ya kawaida, hivyo wote wawili huchapishwa.

%%

Ishara ya asilimia halisi.

% a

Faili ya mwisho ya kufikia faili katika muundo uliorejeshwa na kazi ya C `ctime '.

K

Faili ya mwisho ya kufikia faili katika muundo uliowekwa na k , ambayo ni '@' au maagizo ya kazi ya C `strftime '. Maadili iwezekanavyo kwa k ni hapa chini; baadhi yao haipatikani kwenye mifumo yote, kutokana na tofauti katika `strftime 'kati ya mifumo.

@

sekunde tangu Januari 1, 1970, 00:00 GMT.

Mashamba ya muda:

H

saa (00..23)

Mimi

saa (01..12)

k

saa (0..23)

l

saa (1..12)

M

dakika (00..59)

p

AM ya mtaa au PM

r

wakati, saa 12 (hh: mm: ss [AP] M)

S

pili (00..61)

T

wakati, saa 24 (hh: mm: ss)

X

Uwakilishi wa wakati wa locale (H: M: S)

Z

eneo la wakati (kwa mfano, EDT), au lolote ikiwa hakuna eneo la wakati linaweza kuamua

Mashamba ya tarehe:

a

jina la siku ya wiki lililofunguliwa (Sun..Sat)

A

Jina la kila wiki la wiki, eneo la kutofautiana (Jumapili ... Jumamosi)

b

Jina la mwezi lililofunguliwa kwa mtaa (Jan.Dec)

B

jina la mwezi kamili la locale, urefu wa urefu (Januari..December)

c

tarehe na muda wa locale (Sat Novemba 04 12:02:33 EST 1989)

d

siku ya mwezi (01..31)

D

tarehe (mm / dd / yy)

h

sawa na b

j

siku ya mwaka (001..366)

m

mwezi (01..12)

U

idadi ya wiki ya mwaka na Jumapili kama siku ya kwanza ya wiki (00..53)

w

siku ya wiki (0..6)

W

nusu ya wiki na Jumatatu kama siku ya kwanza ya wiki (00..53)

x

Uwakilishi wa tarehe ya locale (mm / dd / yy)

y

tarakimu mbili za mwisho za mwaka (00..99)

Y

mwaka (1970 ...)

% b

Ukubwa wa faili katika blocks za 512-byte (zimefungwa).

% c

Faili ya mwisho ya mabadiliko ya hali katika faili iliyorejeshwa na kazi ya C `ctime '.

C k

Faili ya mwisho ya hali ya faili katika muundo uliowekwa na k , ambayo ni sawa na% A.

% d

Faili ya kina katika mti wa saraka; 0 inamaanisha faili ni hoja ya mstari wa amri.

% f

Jina la faili na directories yoyote inayoongoza imeondolewa (kipengele cha mwisho tu).

F

Aina ya mfumo wa faili faili iko; thamani hii inaweza kutumika kwa -fstype.

% g

Jina la kikundi cha faili, au Kitambulisho cha kikundi cha kikundi ikiwa kikundi haina jina.

G

Kitambulisho cha kikundi cha faili cha faili.

h

Maelekezo ya kuongoza ya jina la faili (yote lakini kipengele cha mwisho).

H

Mshauri wa mstari wa amri chini ya faili iliyopatikana.

% i

Faili ya inode ya faili (katika decimal).

% k

Ukubwa wa faili katika vitalu vya 1K (vilivyotungwa).

% l

Kitu cha kiungo cha mfano (kamba tupu ikiwa faili si kiungo cha mfano).

% m

Fungu la ruhusa ya faili (kwa octal).

% n

Idadi ya viungo ngumu ya faili.

% p

Jina la faili.

P

Jina la faili na jina la mstari wa mstari wa amri ambao ulipatikana uliondolewa.

% s

Ukubwa wa faili katika byte.

% t

Faili ya mwisho ya mwisho ya faili katika muundo uliorejeshwa na kazi ya C `ctime '.

T k

Faili ya mwisho ya faili ya muundo katika muundo uliowekwa na k , ambayo ni sawa na% A.

% u

Jina la mtumiaji wa faili, au Kitambulisho cha mtumiaji wa simu ikiwa mtumiaji hana jina.

U

Kitambulisho cha mtumiaji wa faili.

Tabia `% 'ikifuatiwa na tabia nyingine yoyote imepotezwa (lakini tabia nyingine imechapishwa).

-piga

Ikiwa-hali haitolewa, ni kweli; usishuke saraka ya sasa.
Ikiwa-mwisho hutolewa, uongo; hakuna athari.

-ls

Kweli; Weka faili ya sasa katika muundo wa `ls -dils 'kwenye pato la kawaida. Hesabu ya kuzuia ni ya vitalu vya 1K, isipokuwa mazingira ya kutosha ya POSIXLY_CORRECT yamewekwa, kwa hivyo vipimo vya 512-byte vinatumiwa.

Waendeshaji

Imeorodheshwa kwa utaratibu wa kupungua kwa utangulizi:

( expr )

Weka utangulizi.

! expr

Kweli ikiwa expr ni uongo.

sio expr

Sawa na ! expr .

expr1 expr2

Na (ina maana); expr2 haipatikani ikiwa expr1 ni uongo.

expr1 -a expr2

Same kama expr2 expr2 .

expr1 -na expr2

Same kama expr2 expr2 .

expr1 -o expr2

Au; expr2 haipatikani ikiwa expr1 ni kweli.

expr1 - au expr2

Same kama expr1 -o expr2 .

expr1 , expr2

Orodha; wote expr1 na expr2 ni daima tathmini. Thamani ya expr1 imeondolewa; thamani ya orodha ni thamani ya expr2 .

Mifano

kupata / nyumbani -user joe

Pata kila faili chini ya saraka / nyumba inayomilikiwa na mtumiaji joe.

kupata / usr-jina * stat

Pata kila faili chini ya saraka / usr kuishia katika ".stat".

kupata / var / spool -timetime +60

Pata kila faili chini ya saraka / var / spool iliyobadilishwa zaidi ya siku 60 zilizopita.

tafuta / tmp-jina msingi -ppe f -print | xargs / bin / rm -f

Pata faili zilizoitwa msingi ndani au chini ya saraka / tmp na uifute. Kumbuka kuwa hii itatenda kazi vibaya ikiwa kuna majina yoyote ya faili yaliyo na vichwa vya habari, quotes moja au mbili, au nafasi.

tafuta / tmp-jina msingi -type f -print0 | xargs -0 / bin / rm -f

Pata faili zilizoitwa msingi au chini ya saraka / tmp na uifute, usindikaji majina ya faili kwa namna ambayo faili au majina ya saraka yaliyo na quotes moja au mbili, nafasi au vichwa vya habari vinafaa kushughulikiwa. Jaribio la jina-linakuja kabla ya mtihani wa - ili kuepuka kuwaita simu (2) kwenye kila faili.

pata. - faili ya f -exec '{}' \;

Inatumia` faili 'kwenye kila faili ndani au chini ya saraka ya sasa. Ona kwamba braces yamefungwa katika alama moja za kupiga kura ili kuwahifadhi kutoka kwa tafsiri kama alama ya script ya shell. Semicolon ni sawa kulindwa na matumizi ya backslash, ingawa ';' ingeweza kutumika katika kesi hiyo pia.

kupata / \ (-perm -4000 -fprintf /root/suid.txt '% # m% u% p \ n' \), \ \--size + 100M -fprintf /root/big.txt '% -10s% p \ n '\)

Pitia mfumo wa faili mara moja tu, uorodhesha faili za seti na vichojio katika /root/suid.txt na faili kubwa kwenye /root/big.txt .

pata $ HOME-mtime 0

Tafuta faili kwenye saraka yako ya nyumbani ambayo imebadilishwa katika masaa ishirini na nne iliyopita. Amri hii inafanya kazi kwa njia hii kwa sababu muda tangu kila faili ilibadilishwa mwisho imegawanywa na masaa 24 na salio yoyote imepotezwa. Hiyo ina maana kwamba ili kufanana na -mtime

0 , faili itahitaji kuwa na mabadiliko katika siku za nyuma zilizo chini ya masaa 24 iliyopita.

pata. -perm 664

Tafuta faili zilizosoma na kuandika ruhusa kwa mmiliki wao, na kikundi, lakini ni watumiaji wengine ambao wanaweza kusoma lakini hawaandiki. Faili zinazofikia vigezo hivi lakini zina vifungo vingine vya ruhusa kuweka (kwa mfano ikiwa mtu anaweza kutekeleza faili) haitafananishwa.

pata. -perm -664

Tafuta files zilizosoma na kuandika ruhusa kwa mmiliki na kikundi chao, na ambayo watumiaji wengine wanaweza kusoma, bila kujali kuwepo kwa bits za ziada za ruhusa (kwa mfano bit execableable). Hii itafanana na faili ambayo ina mode 0777, kwa mfano.

pata. -perm / 222

Tafuta faili zinazoandikwa na mtu (mmiliki wao, au kikundi chao, au mtu mwingine).

pata. -perm / 220 kupata. -perm / u + w, g + w kupata. -perm / u = w, g = w

Amri zote tatu hizi hufanya jambo lile lile, lakini la kwanza linatumia uwakilishi wa octal wa mode ya faili, na wengine wawili hutumia fomu ya mfano. Haya huamuru kutafuta wote kwa faili ambazo zinaandikwa na mmiliki wao au kikundi chao. Faili hazipaswi kuandikwa na mmiliki na kikundi ili kuendana; ama atafanya.

pata. -perm -220 kupata. -Perm -g + w, u + w

Amri hizi mbili zinafanya kitu kimoja; tafuta faili zinazoandikwa na mmiliki wao na kikundi chao.

pata. -perm -444 -perm / 222! -perm / 111 kupata. -perm -a + r -perm / + w! -perm / + x

Amri hizi mbili zinatafuta faili ambazo zinaweza kuonekana kwa kila mtu (-perm-444 au -perm -a + r), angalau kwenye kuweka kidogo kuweka (-perm / 222 au -perm / a + w) lakini haujaweza kutekelezwa kwa mtu yeyote (! -perm / 111 na! -perm / + x kwa mtiririko huo)

Muhimu: Tumia amri ya mtu ( % mtu ) ili kuona jinsi amri hutumiwa kwenye kompyuta yako fulani.