Nggunakake Linux lan Unix Command: golek

Pangaturan Linux lan Unix nemu nggolekake file ing hirarki direktori.

Syntax for find command:

golek [path ...] [ekspresi]

Gambaran

Iki kaca manual nyedhiyakake versi GNU. Prentah nggoleki nggoleki wit direktori sing di-root ing saben jeneng file sing diwenehake kanthi ngevaluasi ekspresi sing diwenehi saka kiwa-kiwa, miturut aturan precedence (pirsani bagean ing Operator ngisor), nganti hasil kasebut dikenal; Ing tembung liyane, sisih kiwa palsu lan operasi, bener kanggo utawa , ing ngendi titik golek kanggo jeneng file sabanjure.

Alesan pertama sing diwiwiti karo:

dijupuk dadi awal ekspresi; wae argumen sadurunge iku path kanggo nelusuri, lan sembarang bantahan sawise iku liyane saka expression. Yen ora ana path sing diwenehake, direktori saiki digunakake. Yen ora ana ungkapan, ekspresi -print digunakake.

Tandhingake printah metu karo status 0 yen kabeh file diolah kasil, luwih gedhe tinimbang 0 yen ana kesalahan.

Ekspresi

Ekspresi kasebut digawe saka opsi (sing mengaruhi operasi sakabehe tinimbang proses ngolah file tartamtu, lan tansah bali bener), tes (sing ngasilake nilai sing bener utawa salah), lan tumindak (sing duwe efek samping lan bali sing bener utawa nilai palsu), kabeh dipisahake dening operator. Ekspresi-lan dianggep ing ngendi operator dilirwakaké. Yen ekspresi ora ana tindakan liyane saka -prune , banjur -print dilakokake ing kabeh file sing ekspresi kasebut bener.

Pilihan

Kabeh opsi tansah bali bener. Padha tansah ditrapake, tinimbang diproses mung nalika panggonan ing ekspresi ditampa. Mulane, kanggo kajelasan, luwih becik nempatake dheweke ing awal ekspresi.

-daystart Ngukur wektu (kanggo -amin, -ime, -cmin, -ctime, -mmin, lan -mtime ) saka awal saiki tinimbang saka 24 jam kepungkur.
-depth Ngolah isi saben direktori sadurunge direktori kasebut dhewe.
-follow Darmabakti simbol pranala. Nyebabake -noleaf .
-Takon utawa --Rakyat Nyithak ringkesan dhaptar baris komando saka golek lan metu.
-maxdepth [number] Mudhunake paling akeh tingkat (integer non-negatif) saka petunjuk ing ngisor argumen baris perintah. Ekspresi -maxdepth 0 tegese mung ngleksanakake tes lan tindakan menyang argumen baris perintah.
-mindepth [number] Ora ngleksanake tes utawa tindakan ing tingkat kurang saka nomer (integer non-negatif). Ekspresi -mindepth 1 tegese proses kabeh file kajaba argumen baris perintah.
-mount Aja mudhun direktori ing filesystem liyane. Jeneng liya kanggo -xdev , kanggo kompatibilitas karo sawetara jinis nggoleki liyane .
-noleaf Aja ngoptimalake kanthi ngasumsikan yen direktori ngemot 2 kurang subdirektori tinimbang hard link count. *
-version utawa --versi Print nomer versi golek lan metu.
-xdev Aja mudhun direktori ing filesystem liyane.

* Pilihan iki perlu nalika nggoleki filesystem sing ora ngetutake konvènsi pranala direktori Unix, kayata file sistem CD-ROM utawa MS-DOS utawa titik gunung volume AFS. Saben direktori ing sistem berkas Unix normal duwe paling 2 pranala hard: jenenge lan . (wektu) entri. Tambahan, subdirektori kasebut (yen ana) saben duwe entri .. disambung karo direktori kasebut.

Nalika ditemokake wis mriksa direktori, sawise wis nduwe loro luwih subdirektori tinimbang pranala pranala direktori, dheweke ngerti yen sisa entri ing direktori iku non-direktori (file rante ing direktori direktori). Yen mung jeneng file sing perlu diperiksa, ora perlu kanggo stat; iki menehi nambah pinunjul ing kacepetan panelusuran.

Tes

Argumentasi numerik bisa ditemtokake minangka:

+ n Kanggo luwih saka n.
-n Kanggo kurang saka n.
n Kanggo persis n.
-amin n Berkas iki pungkasan diakses n menit kepungkur.
-wara [file] Berkas iki pungkasan diaksès luwih anyar tinimbang berkas diowahi. -pemilik dipengaruhi dening -follow mung yen -follow rawuh sadurunge-lagi ing baris printah.
- wektu n Berkas iki pungkasan diakses n * 24 jam kepungkur.
-cmin n Status file terakhir diganti n minutes ago.
-wewer [file] Status berkas terakhir diubah suwé nalika berkas diowahi.
- cnewer dipengaruhi dening -follow mung yen -follow rawuh sadurunge -newer ing baris printah.
-tapi n Status berkas terakhir diganti n * 24 jam kepungkur.
-empty File kosong lan minangka file biasa utawa direktori.
-false Tansah palsu.
-tipe [jenis] File ana ing filesystem jinis tartamtu. Jenis file sistem sing bener beda-beda ing versi Unix; dhaptar jinis sistem berkas sing ora lengkap sing ditampa ing sawetara versi Unix utawa liya yaiku: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Sampeyan bisa nggunakake -printf kanthi direktif% F kanggo ndeleng tipe file sistemmu.
-gid n ID klompok numerik iku n .
-group [gname] File belongs kanggo gname grup (ID grup numerik sing diidinake).
-ilname [pola] Kaya -lname, nanging match ora masalah cilik.
-iname [pattern] Kaya-jeneng, nanging match ora masalah. Contone, pola kanggo * lan F ?? cocog jeneng berkas Foo , Foo , foo , fOo , etc.
-inum n File nduweni angka inode n .
-ipath [pola] Senadyan -path , nanging pertandhingan iku ora pati penting.
-iregex [pola] Kaya -regex, nanging match ora masalah.
-links n Gambar nduweni pranala n .
-lname [pattern] File punika pranala simbolis sing isi cocog pola cangkang. Metacharacters ora nangani / utawa . khusus.
-mmin n Data file terakhir diowahi n menit kepungkur.
-manggo n Data file terakhir diubah dadi * 24 jam kepungkur.
-name [pola] Asma jeneng berkas (path sing nganggo petunjuk direktori sing dibusak) cocog karo pola cangkang. Metodarakter ( * , ? , Lan [] ) ora cocog karo . ing wiwitan jeneng basa. Kanggo nglirwakake direktori lan file ing ngisor iki, gunakake -prune ; waca conto ing gambaran saka -path .
-newer [file] Berkas iki diowahi luwih becik tinimbang berkas . Ekspresi- anyar kasebut kena pengaruh -follow mung yen dibusak sadurunge- anyar ing baris perintah.
-nouser Ora ana user sing cocog karo ID panganggo numerik.
-kumpulan Ora ana grup sing cocog karo ID klompok numerik.
-path [pola] Jeneng berkas cocog pola pola cangkang. Metacharacters ora nangani / utawa . khusus; supaya, contone, golek. -path './sr*sc bakal nyithak entri kanggo direktori sing disebut ./src/misc (yen ana). Kanggo nglirwakake kabeh direktori direktori, gunakake -prune tinimbang mriksa saben file ing wit. Contone, kanggo ngliwati src / emacs direktori lan kabeh file lan petunjuk ing ngisor iki, lan print jeneng file liya sing ana, tindakake kaya iki: golek. -path './src/emacs' -prune -o -print
-perm [mode] Tombol ijin berkas iku persis [mode] (octal utawa simbolis). Mode simbolis nggunakake mode 0 minangka titik keberangkatan.
-perm-mode Kabeh bit ijin [mode] disetel kanggo file kasebut.
-perm + mode Sembarang bit ijin [mode] disetel kanggo file.
-regex [pola] Jeneng berkas cocog karo pola ekspresi biasa. Iki minangka pertandhingan ing kabeh dalan, ora golèk. Contone, cocog karo file sing dijenengi ./fubar3, sampeyan bisa nggunakake ekspresi reguler . * Bar. utawa . * b. * 3 , nanging ora b. * r3 .
-size n [bckw] File migunakake unit-unit spasi. Unit kasebut minangka pamblokiran 512-byte utawa b minangka b minangka n , bita yen c nurutake n , kilobita yen k nurutake n , utawa 2-byte tembung yen w nurutake. Ukuran ora diétung pamblokiran ora langsung, nanging ora ana pamblokiran ing file jarang sing ora dialokasikan.
-true Tansah bener.
-tipe c Gambar saka jinis c :
b Blok (buffered) khusus
c Karakter (unbuffered) khusus
d Direktori
p Jeneng pipa (FIFO)
f Berkas biasa
l Link simbolis
s Socket
D lawang (Solaris)
-uid n ID panganggo numerik iku n .
-use n Berkas iki diaksès pungkasan n dinten sasampunipun status kasebat pungkasan dipunéwahi.
-user uname Gambar dimupangatake dening user uname (ID pangguna angka sing diidinake).
-tipe c Tipe-padha kajaba file kasebut minangka pranala simbolis. Kanggo pranala simbolis: yen -follow ora diwenehi bener, yèn berkas iki minangka link menyang file tipe c ; yen -follow wis diwenehi, bener yen c iku l. Ing tembung liyane, kanggo pranala simbolis,
-type ngecek jinis file sing -tipe ora mriksa.

Tindakan

-Sex command ;

Nglakoni perintah ; bener yen 0 status dikembalikan. Kabeh argumen ing ngisor iki kanggo nemokake dijupuk dadi argumen menyang perintah nganti argumen sing dumadi saka `; ' wis ditemoni. Senar `{} 'diganti dening jeneng berkas sing saiki diproses ing ngendi wae, ana ing argumen kasebut, ora mung ana ing argumen, nanging ana ing sawetara versi panemu . Loro-lorone konstruksi kasebut kudu bisa lolos (kanthi `` ') utawa dikutip kanggo nglindhungi saka ekspansi dening cangkang. Printah iki dieksekusi ing direktori wiwitan.

-fls file

Leres; kaya -ls nanging nulis kanggo ngajukake kaya-print.

-print file

Leres; print jeneng berkas lengkap ing file ngajukake . Yen file ora ana nalika ditemokake , bisa digawé; yen ana, wis dipotong. Jeneng berkas `` / dev / stdout '' lan `` / dev / stderr 'ditangani khusus; padha ngrujuk marang output standar lan output kesalahan standar.

-printprint file

Leres; kaya -print0 nanging nulis kanggo file kaya-print.

format file -fprintf

Leres; kaya-printf nanging nulis kanggo ngajukake kaya-print.

perintah -ok;

Kaya -exec nanging takon panganggo dhisik (ing input standar); yen respon ora diwiwiti karo `y 'utawa' Y ', aja mbukak perintah, lan bali palsu.

-print

Leres; print the full file name ing output standar, disusul karo baris anyar.

-print0

Leres; print the full file name ing output standar, diikuti karo karakter null. Iki ngidini jeneng berkas sing ngandhut newline supaya bisa diinterpretasi kanthi bener dening program sing ngolah output nggoleki .

-printf format

Leres; Format print ing output standar, alih kode `\ 'escapes lan`%' arah. Lapuran lan precisi lapangan bisa ditemtokake karo fungsi `printf 'C. Ora kaya -print, -printf ora nambah garis anyar ing pungkasan string. Panyengkuyung lan pituduh yaiku:

\ a

Lonceng alarm.

\ b

Backspace.

\ c

Stop printing saka format iki langsung lan flush output.

\ f

Formulir feed.

\ n

Newline.

\ r

Carriage bali.

\ t

Tab horisontal.

\ v

Tab vertikal.

\\

Backslash harfiah (`\ ').

\ NNN

Karakter sing kode ASCII iku NNN (octal).

Karakter `'' diikuti dening karakter liyane dianggep minangka karakter biasa, saengga loro dicithak.

%%

Tanda persen literal.

% a

Wektu akses wektu ing format diwiwiti kanthi fungsi C `ctime '.

% K

Wektu akses pungkasan file ing format sing ditemtokake dening k , sing minangka salah siji `@ 'utawa pandhuan kanggo fungsi C' strftime '. Nilai-nilai sing bisa diduwèni k didhaptar ing ngisor iki; sawetara wong ora bisa kasedhiya ing kabeh sistem, amarga beda-beda ing 'strftime' antarane sistem.

@

detik wiwit Jan. 1, 1970, 00:00 GMT.

Wektu kothak:

H

jam (00..23)

Aku

jam (01..12)

k

jam (0..23)

l

jam (1..12)

M

menit (00..59)

p

AM utawa PM lokal

r

wektu, 12 jam (hh: mm: ss [AP] M)

S

kapindho (00..61)

T

wektu, 24 jam (hh: mm: ss)

X

perwakilan wektu lokal (H: M: S)

Z

zona wektu (contone, EDT), utawa ora ana manawa zona wektu ora bisa ditemtokake

Tanggal lapangan:

a

jeneng jam kerja lokal (Sun..Sat)

A

jeneng lengkap saben dina jeneng lokal, dawa variabel (Minggu..Saturday)

b

jeneng sasi lokal sing disingkat (Jan..Dec)

B

jeneng lengkap sebutan lokal, panjang variabel (Januari-Desember)

c

tanggal lan wektu lokal (Sat Nov 04 12:02:33 EST 1989)

d

dina sasi (01..31)

D

tanggal (mm / dd / yy)

h

padha karo b

j

dina taun (001..366)

m

wulan (01..12)

U

minggu nomer taun karo Minggu minangka dina pisanan minggu (00..53)

w

dina minggu (0..6)

W

minggu nomer taun karo dina Senin minangka dina pisanan minggu (00..53)

x

perwakilan tanggal lokal (mm / dd / yy)

y

loro digit pungkasan taun (00..99)

Y

taun (1970 ...)

% b

Ukuran file ing blok 512-bait (dibunderaké munggah).

% c

Tanggal ganti status pungkasan ing format diwiwiti kanthi fungsi C `ctime '.

% C k

Tanggal pangowahan pungkasan berkas ing format sing ditemtokake dening k , sing padha karo% A.

% d

Kedalaman berkas ing wit direktori; 0 tegese file iku argumen baris perintah.

% f

Jeneng berkas karo direktori langsung kabeh dibusak (mung elemen pungkasan).

% F

Tipe sistem filesystem diaktifake; Nilai iki bisa digunakake kanggo -fstype.

% g

Jeneng grup file, utawa ID grup numerik yen grup kasebut ora ana jenenge.

% G

ID grup numerik file.

% h

Ndandani direktori jeneng berkas (kabeh nanging unsur pungkasan).

% H

Argumentasi baris komando ing ngisor iki berkas sing ditemokake.

% i

Nomer inode file (ing desimal).

% k

Ukuran file ing blok 1K (dibunderake munggah).

% l

Obyek pranala simbolis (string kosong yen file ora minangka pranala simbolis).

% m

File ijin berkas (ing octal).

% n

Jumlah pranala hard kanggo file.

% p

Jeneng berkas.

% P

Jeneng file kanthi jeneng argumen baris perintah sing ditemokake dibusak.

% s

Ukuran file ing bita.

% t

Wektu modhifikasi wektu ing format diwiwiti kanthi fungsi C `ctime '.

% T k

Tanggal terakhir pangowahan berkas ing format sing ditemtokake dening k , sing padha karo% A.

% u

Jeneng panganggo, utawa ID pangguna angka kasebut, pangguna tanpa jeneng.

% U

ID panganggo numerik.

Karakter `% 'diiringi karakter liyane dibuang (nanging karakter liyane dicithak).

-prune

Yen -depth ora diwenehi, bener; aja mudhun direktori saiki.
Yen -depth diwenehi, palsu; ora ana efek.

-ls

Leres; dhaptar file saiki ing `ls-dils 'format ing output standar. Jumlah pamblokiran ana 1K pamblokiran, kajaba variabel lingkungan POSIXLY_CORRECT wis disetel, lan batesan 512-byte kasebut digunakake.

Operator

Kadhaptar kanggo ngurangi precedence:

( expr )

Precedent peksa.

! expr

Bener yen expr palsu.

-not expr

Podho karo ! expr .

expr1 expr2

Lan (tegese); expr2 ora dievaluasi yen expr1 palsu.

expr1 -a expr2

Padha expr1 expr2 .

expr1 -and expr2

Padha expr1 expr2 .

expr1 -o expr2

Utawa; expr2 ora dievaluasi yen expr1 bener.

expr1 -or expr2

Padha expr1 -o expr2 .

expr1 , expr2

Dhaftar; loro expr1 lan expr2 tansah dievaluasi. Nilai ekspr1 dibuang; Nilai saka dhaftar kasebut yaiku nilai expr2 .

Conto

golek / home -user joe

Temokake saben file ing direktori / asal sing dimupangatake dening user joe.

golek / usr -name * stat

Temokake saben file ing direktori / usr pungkasan ing ".stat".

golek / var / spool -mtime +60

Temokake saben file ing direktori / var / spool sing diowahi luwih saka 60 dina kepungkur.

nemokake / tmp -name inti -type f -print | xargs / bin / rm -f

Golek file sing dijenengi inti ing utawa ngisor direktori / tmp lan busakna . Elinga yen iki bakal bisa digunakake kanthi ora sengaja yen ana filename ngemot garis anyar, kuotasi siji utawa kaping pindho, utawa spasi.

nemokake / tmp -name inti -type f -print0 | xargs -0 / bin / rm -f

Temokake file sing diarani inti ing utawa sangisore direktori / tmp lan busakna , ngolah jeneng file kaya mangkene sing jeneng file utawa direktori sing ngemot tanda, spasi utawa baris anyar sing wis diatasi kanthi bener. Test -name rawuh sadurunge test- tipe supaya ora kudu nelpon stat (2) ing saben file.

golek. -type f -exec file '{}' \;

Nganggo `file 'ing saben file ing utawa ing ngisor direktori saiki. Wara-wara menawa kancing-kelengkongan sing dikunci nganggo tandha kutip tunggal kanggo njaga saka interpretasi minangka aksara tulis shell. Semikolon iki uga dilindhungi kanthi nggunakake backslash, sanajan ';' bisa uga digunakake ing kasus kasebut.

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

Mlumpat file sistem mung sapisan, nyimpen file lan direktori dhaptar ing /root/suid.txt lan file gedhe menyang / rooting / big.txt .

golek $ HOME -mtime 0

Nelusuri file ing direktori ngarep sing wis diowahi sajrone 24 jam pungkasan. Pangaturan iki dianggo kanthi cara iki amarga wektu wiwit saben berkas sing pungkasan diowahi dibagi dening 24 jam lan sisa-sisane dibuang. Sing tegese kanggo cocog -mtime

0 , file kudu modifikasi ing sasi sing kurang saka 24 jam kepungkur.

golek. -permainan 664

Temokake file sing wis diwaca lan nulis ijin kanggo pemilik, lan grup, nanging sing bisa dibaca liyane nanging ora nulis. File sing ketemu kritéria kasebut nanging duwé hak aksès bit liyane (umpamane yen wong bisa nglakokaké berkas kasebut) ora bakal dicocogaké.

golek. -perm -664

Temokake file sing wis diwaca lan nulis ijin kanggo pemilik lan klompok, lan pangguna liyane bisa maca, tanpa ndeleng anané sembarang bit ijin ekstra (umpamane bit sing bisa dieksekusi). Iki bakal cocog karo file sing nduweni mode 0777, contone.

golek. -perm / 222

Temokake file sing bisa ditulis dening wong (pemilik, utawa klompok, utawa wong liya).

golek. -perm / 220 golek. -perm / u + w, g + w find. -perm / u = w, g = w

Kabeh telu perintah kasebut nglakoni bab sing padha, nanging sing pisanan nggunakake perwakilan oktaf saka mode file, lan loro liyane nggunakake wangun simbolis. Iki nyatane kabeh nggoleki file sing bisa ditulis dening pemilik utawa grup kasebut. File ora kudu ditulis dening pemilik lan grup sing cocog; salah siji bakal nindakake.

golek. -perm -220 golek. -perm -g + w, u + w

Loro-lorone perintah kasebut nindakake perkara sing padha; nelusuri file sing bisa ditulis dening pemilik lan klompoke.

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

Iki loro-lorone anggone nggoleki loro file sing bisa dibaca kanggo kabeh wong (-perm -444 utawa -perm -a + r), duwe sethithik nulis set set (-perm / 222 utawa -perm / a + w) nanging ora bisa dieksekusi kanggo sapa wae (! -perm / 111 lan! -perm / a + x)

Penting: Gunakake perintah wong ( % man ) kanggo ndeleng carane printah sing digunakake ing komputer sampeyan.