Perintah Linux dan Unix cari menjalankan carian untuk fail dalam hirarki direktori.
Sintaks bagi cari arahan:
cari laluan … ungkapan
Penerangan
Halaman manual ini menyertakan versi GNU of cari . Perintah itu cari mencari pohon direktori yang di-root pada setiap nama fail yang diberikan dengan menilai ungkapan yang diberikan dari kiri ke kanan, mengikut peraturan diutamakan (lihat bahagian di Operator di bawah), sehingga hasil diketahui; dengan kata lain, sebelah kiri adalah palsu untuk dan operasi, benar untuk atau , pada ketika itu cari bergerak ke nama fail seterusnya.
Hujah pertama yang bermula dengan:
- -
- ( atau),
- !
diambil sebagai permulaan ungkapan; apa-apa hujah sebelum ia adalah jalan untuk mencari, dan apa-apa hujah selepas itu adalah ungkapan yang lain. Jika tiada jalan diberikan, direktori semasa digunakan. Sekiranya tiada ekspresi diberikan, ungkapan tersebut -print digunakan.
The cari keluar perintah dengan status 0 jika semua fail berjaya diproses, lebih besar daripada 0 jika ralat berlaku.
Ungkapan
Ungkapan terdiri daripada pilihan (yang mempengaruhi operasi secara keseluruhan dan bukan pemprosesan fail tertentu, dan selalu kembali benar), ujian (yang mengembalikan nilai yang benar atau salah), dan tindakan (yang mempunyai kesan sampingan dan mengembalikan yang benar atau nilai palsu), semuanya dipisahkan oleh pengendali. Ekspresi -dan diandaikan di mana pengendali diabaikan. Sekiranya ungkapan tersebut tidak mengandungi tindakan selain -prune , kemudian -print dilakukan pada semua fail yang mana ungkapan itu benar.
Pilihan
Semua pilihan sentiasa kembali benar. Mereka sentiasa berkuat kuasa, bukannya diproses hanya apabila tempat mereka dalam ungkapan dicapai. Oleh itu, untuk kejelasan, adalah yang terbaik untuk meletakkan mereka pada permulaan ungkapan.
-dari awal | Mengukur masa (untuk -amin, -kalima, -kmin, -masa, -min, dan -mtime ) dari awal hari ini berbanding dari 24 jam yang lalu. |
-depth | Proses kandungan setiap direktori sebelum direktori itu sendiri. |
-follow | Pautan simbol derefera. Bermaksud -noleaf . |
-help atau - membantu | Cetak ringkasan penggunaan baris perintah cari dan keluar. |
-maxdepth nombor | Turunkan pada kebanyakan peringkat (integer bukan negatif) direktori di bawah hujah arahan baris. Ekspresi -maxdepth 0 bermaksud hanya menggunakan ujian dan tindakan ke argumen baris perintah. |
-mengepth nombor | Jangan gunakan sebarang ujian atau tindakan pada tahap kurang daripada nombor (integer bukan negatif). Ekspresi -mindepth 1 bermaksud memproses semua fail kecuali argumen baris perintah. |
-mount | Jangan turun direktori pada fail sistem lain. Nama ganti untuk -xdev , untuk keserasian dengan beberapa versi lain cari . |
-noleaf | Jangan mengoptimumkan dengan mengandaikan bahawa direktori mengandungi 2 subdirektori yang lebih sedikit daripada kiraan pautan keras mereka. * |
-versi atau - pengalihan | Cetak cari nombor versi dan keluar. |
-xdev | Jangan turun direktori pada fail sistem lain. |
* Opsyen ini diperlukan apabila mencari fail sistem yang tidak mengikuti konvensyen pautan direktori Unix, seperti sistem fail CD-ROM atau MS-DOS atau titik gunung kelantangan AFS. Setiap direktori pada sistem fail Unix biasa mempunyai sekurang-kurangnya 2 pautan keras: namanya dannya. kemasukan (tempoh). Di samping itu, subdirektori (jika ada) masing-masing mempunyai. kemasukan yang dikaitkan dengan direktori itu.
Bila cari sedang meneliti direktori, setelah ia mempunyai dua subdirektori yang lebih sedikit daripada kiraan pautan direktori, ia tahu bahawa sisa entri dalam direktori itu bukan direktori ( daun fail di dalam pokok direktori). Jika hanya nama-nama fail yang perlu diperiksa, tidak perlu mengesahkannya; ini memberikan peningkatan ketara dalam kelajuan carian.
Ujian
Argumen berangka boleh dinyatakan sebagai:
+ n | Untuk lebih besar daripada n. |
-n | Untuk kurang daripada n. |
n | Untuk tepat n. |
-amin n | Fail terakhir telah diakses n minit yang lalu. |
-menambah fail | Fail terakhir telah diakses lebih baru daripada fail telah diubah suai. -pengalaman dipengaruhi oleh -follow hanya jika -follow datang sebelum -meningkat pada baris arahan. |
-atime n | Fail terakhir telah diakses n * 24 jam yang lalu. |
-cmin n | Status fail terakhir diubah n minit yang lalu. |
-jennya fail | Status fail terakhir diubah lebih awal daripada fail diubah suai.- cnewer dipengaruhi oleh -follow hanya jika -follow datang dahulu -pesan pada baris arahan. |
-tetika n | Status fail terakhir diubah n * 24 jam yang lalu. |
-empty | Fail kosong dan sama ada fail biasa atau direktori. |
-salah | Sentiasa salah. |
-jenis jenis | Fail berada pada sistem fail jenis yang ditentukan. Jenis sistem fail yang sah berbeza-beza di antara versi Unix yang berlainan; senarai lengkap jenis sistem fail yang diterima pada beberapa versi Unix atau yang lain adalah: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Anda boleh menggunakan -printf dengan arahan% F untuk melihat jenis sistem fail anda. |
-gid n | ID kumpulan angka fail ialah n . |
-group gname | Fail dimiliki oleh gname kumpulan (ID kumpulan angka yang dibenarkan). |
-name corak | Seperti nama, tetapi perlawanan itu tidak sensitif. |
-iname corak | Suka -name , tetapi perlawanan itu tidak sensitif. Sebagai contoh, corak untuk * dan F ?? padan nama fail Foo , FOO , foo , fOo , dan lain-lain. |
-inum n | Fail mempunyai nombor inod n . |
-ipat corak | Suka -path , tetapi perlawanan itu tidak sensitif. |
-iregex corak | Seperti biasa, tetapi perlawanannya tidak sensitif. |
-dalam n | Fail mempunyai n pautan. |
-lname corak | Fail ialah pautan simbol yang kandungannya sepadan dengan corak shell. Metacharacters tidak merawat / atau . khasnya. |
-mmin n | Data fail terakhir diubahsuai n minit yang lalu. |
-mtime n | Data fail terakhir diubahsuai n * 24 jam yang lalu. |
-name corak | Asas nama fail (laluan dengan direktori utama dikeluarkan) sepadan dengan corak shell. The metacharacters (*, ?, dan ) tidak sepadan dengan . pada permulaan nama asas. Untuk mengabaikan direktori dan fail di bawahnya, gunakan -prune ; lihat contoh dalam keterangan -path . |
-newer file | Fail diubah suai lebih baru daripada fail . Ekspresi -newer dipengaruhi oleh -follow hanya jika -follow datang dahulu -newer pada baris arahan. |
-nouser | Tiada pengguna sepadan dengan ID pengguna angka fail. |
-kumpulan | Tiada kumpulan sepadan dengan ID kumpulan angka fail. |
-path corak | Nama fail sepadan dengan corak shell corak . Metacharacters tidak merawat / atau . khasnya; jadi, sebagai contoh,cari . -path './sr*sc akan mencetak entri untuk direktori yang dipanggil ./src/misc (jika ada). Untuk mengabaikan pokok direktori keseluruhan, gunakan -prune bukannya memeriksa setiap fail di dalam pokok itu. Sebagai contoh, untuk melangkau direktori src / emacs dan semua fail dan direktori di bawahnya, dan mencetak nama fail lain yang dijumpai, lakukan sesuatu seperti ini:cari . -path './src/emacs' -prune -o -print |
-perm mod | Bit kebenaran fail adalah betul-betul mod (oktaf atau simbolik). Mod simbolik menggunakan mod 0 sebagai titik berlepas. |
-perm-mod | Semua bit kebenaran mod ditetapkan untuk fail. |
-perm + mod | Mana-mana bit kebenaran mod ditetapkan untuk fail. |
-regex corak | Nama fail sepadan dengan ungkapan biasa corak . Ini adalah padanan di seluruh jalan, bukan carian. Sebagai contoh, untuk memadankan fail bernama ./fubar3, anda boleh menggunakan ungkapan biasa . * bar. atau . * b. * 3, tetapi tidak b. * r3. |
-size n bckw | Kegunaan fail n unit ruang. Unit-unit adalah blok 512 bait secara lalai atau jika b berikut n , bait jika c berikut n , kilobytes jika k berikut n , atau perkataan 2-bait jika w berikut n . Saiz tidak mengira blok tidak langsung, tetapi ia menghitung blok dalam fail jarang yang tidak benar-benar diperuntukkan. |
-true | Sentiasa benar. |
-tipe c | Fail adalah jenis c : |
b | Blok (buffered) istimewa |
c | Watak (tanpa buatan) istimewa |
d | Direktori |
p | Dinamakan paip (FIFO) |
f | Fail tetap |
l | Pautan simbolik |
s | Soket |
D | pintu (Solaris) |
-uid n | ID pengguna nombor fail ialah n . |
-menggunakan n | Fail terakhir telah diakses n hari selepas statusnya berubah terakhir. |
-mengguna uname | Fail dimiliki oleh pengguna uname (ID pengguna berangka dibenarkan). |
-type c | Sama seperti -tipe melainkan fail itu adalah pautan simbolik. Untuk pautan simbolik: jika -follow belum diberikan, benar jika fail itu adalah pautan ke fail jenis c ; jika -follow telah diberikan, benar jika c adalah l. Dengan kata lain, untuk pautan simbolik, -type memeriksa jenis fail itu -tipe tidak semestinya. |
Tindakan
-exec perintah ;
Jalankan perintah ; benar jika status 0 dikembalikan. Semua argumen berikut kepadacari diambil menjadi argumen kepada perintah sehingga argumen yang terdiri dari `; ' ditemui. Rentetan `{} 'digantikan oleh nama fail semasa yang diproses di mana-mana ia berlaku dalam hujah-hujah untuk arahan, bukan hanya dalam argumen di mana ia bersendirian, seperti dalam beberapa versicari. Kedua-dua pembinaan ini mungkin perlu melarikan diri (dengan ` ') atau dipetik untuk melindungi mereka dari pengembangan oleh shell. Perintah ini dilaksanakan dalam direktori permulaan.
-fls fail
Benar; seperti -ls tetapi tulis kepada fail seperti -print.
-print fail
Benar; cetak nama fail penuh ke dalam fail fail . Jika fail tidak wujud ketikacari dijalankan, ia dicipta; jika ia wujud, ia dipenggal. Nama fail `` / dev / stdout '' dan `` / dev / stderr '' ditangani secara khusus; mereka merujuk kepada keluaran standard dan output kesilapan standard, masing-masing.
-print0 fail
Benar; seperti -print0 tetapi tulis kepada fail seperti -print.
-fprintf fail format
Benar; seperti -printf tetapi tulis kepada fail seperti -print.
-okey perintah ;
Seperti -exec tetapi meminta pengguna terlebih dahulu (pada input standard); jika respons tidak bermula dengan `y 'atau` Y', jangan jalankan arahan, dan pulangkan palsu.
Benar; cetak nama fail penuh pada output standard, diikuti dengan baris baru.
-print0
Benar; cetak nama fail penuh pada output piawai, diikuti dengan watak null.Ini membolehkan nama fail yang mengandungi baris baru untuk diterjemahkan dengan betul oleh program yang memprosesnyacari pengeluaran.
-printf format
Benar; cetak format pada output standard, mentafsir ` 'escapes dan arahan`%'. Lebar dan precisi lapangan boleh ditentukan dengan fungsi `printf 'C. Tidak seperti -print, -printf tidak menambah baris baru pada akhir rentetan. Pelarian dan arahan adalah:
a
Loceng penggera.
b
Backspace.
c
Berhenti mencetak dari format ini serta-merta dan keluarkan output.
f
Borang suapan.
n
Baris baru.
r
Kembalinya kereta.
t
Tab mendatar.
v
Tab menegak.
\
Backslash literal (` ').
NNN
Watak yang kod ASCIInya adalah NNN (oktaf).
Aksara ` 'yang diikuti oleh watak lain dianggap sebagai watak biasa, sehingga kedua-duanya dicetak.
%%
Satu tanda peratus literal.
% a
Masa capaian terakhir fail dalam format yang dikembalikan oleh fungsi C `ctime '.
% A k
Masa capaian terakhir fail dalam format yang ditentukan oleh k , yang sama ada `@ 'atau arahan untuk fungsi C' strftime. Nilai yang mungkin untuk k disenaraikan di bawah; sesetengah daripada mereka mungkin tidak terdapat pada semua sistem, kerana perbezaan dalam 'strftime' antara sistem.
@
detik sejak 1 Januari 1970, 00:00 GMT.
Bidang masa:
H
jam (00..23)
Saya
jam (01..12)
k
jam (0..23)
l
jam (1..12)
M
minit (00..59)
p
AM atau PM locale
r
masa, 12 jam (hh: mm: ss AP M)
S
kedua (00..61)
T
masa, 24 jam (hh: mm: ss)
X
perwakilan masa tempatan (H: M: S)
Z
zon waktu (mis., EDT), atau tiada jika tiada zon waktu ditentukan
Bidang tarikh:
a
Nama ringkas hari kerja tempatan (Sun..Sat)
A
nama penuh hari tempatan setempat, panjang berubah (Ahad .. Sabtu)
b
nama bulan disingkat locale (Jan..Dec)
B
nama penuh bulan locale, panjang berubah-ubah (Januari-Disember)
c
tarikh dan masa locale (Sat Nov 04 12:02:33 EST 1989)
d
hari bulan (01..31)
D
tarikh (mm / dd / yy)
h
sama seperti b
j
hari tahun (001..366)
m
bulan (01..12)
U
minggu bilangan tahun dengan Ahad sebagai hari pertama minggu (00..53)
w
hari minggu (0..6)
W
bilangan minggu tahun dengan hari Isnin sebagai hari pertama minggu (00..53)
x
perwakilan tarikh tempatan (mm / dd / yy)
y
dua digit terakhir tahun (00..99)
Y
tahun (1970 …)
% b
Saiz fail dalam blok 512-bait (bulat).
% c
Masa perubahan status terakhir fail dalam format yang dikembalikan oleh fungsi C `ctime '.
% C k
Masa perubahan status terakhir fail dalam format yang ditentukan oleh k , yang sama dengan% A.
% d
Kedalaman fail dalam pokok direktori; 0 bermaksud fail adalah argumen baris perintah.
% f
Nama fail dengan mana-mana direktori utama dikeluarkan (hanya elemen terakhir).
% F
Jenis sistem fail fail dihidupkan; nilai ini boleh digunakan untuk -fungsi.
% g
Nama kumpulan fail, atau ID kumpulan angka jika kumpulan itu tiada nama.
% G
ID kumpulan angka fail.
% h
Direktori utama nama fail (semua tetapi unsur terakhir).
% H
Argumen baris perintah di bawah fail yang dijumpai.
% i
Nombor inode fail (dalam perpuluhan).
% k
Saiz fail dalam blok 1K (bulat).
% l
Objek pautan simbolik (rentetan kosong jika fail bukan pautan simbolik).
% m
Bit kebenaran fail (dalam oktaf).
% n
Bilangan pautan keras untuk fail.
% p
Nama fail.
% P
Nama fail dengan nama hujah arahan baris di mana ia dijumpai dikeluarkan.
% s
Saiz fail dalam bait.
% t
Masa pengubahsuaian terakhir fail dalam format yang dikembalikan oleh fungsi C `ctime '.
% T k
Masa pengubahsuaian terakhir fail dalam format yang ditentukan oleh k , yang sama dengan% A.
% u
Nama pengguna fail, atau ID pengguna angka jika pengguna tidak mempunyai nama.
% U
ID pengguna angka fail.
Aksara `% 'diikuti oleh mana-mana aksara lain dibuang (tetapi aksara lain dicetak).
-prune
Sekiranya -depth tidak diberikan, benar; jangan turun direktori semasa.Jika -depth diberikan, palsu; tiada kesan. -ls Benar; senarai fail semasa dalam format `ls-dils 'pada output standard. Tuntutan blok adalah blok 1K, melainkan pembolehubah persekitaran POSIXLY_CORRECT ditetapkan, di mana blok 512-bait digunakan. Disenaraikan demi mengurangkan prioriti: ( expr ) Tuntut keutamaan. ! expr Benar jika expr adalah salah. -not expr Sama seperti ! expr . expr1 expr2 Dan (tersirat); expr2 tidak dinilai jika expr1 adalah salah. expr1 -a expr2 Sama seperti expr1 expr2 . expr1 -dan expr2 Sama seperti expr1 expr2 . expr1 -o expr2 Atau; expr2 tidak dinilai jika expr1 betul. expr1 -or expr2 Sama seperti expr1 -o expr2 . expr1 , expr2 Senarai; kedua-duanya expr1 dan expr2 sentiasa dinilai. Nilai expr1 dibuang; nilai senarai adalah nilai expr2 . cari / home -user joe
Cari setiap fail di bawah direktori / rumah yang dimiliki oleh pengguna joe. cari / usr -name * stat
Cari setiap fail di bawah direktori / usr yang berakhir di ".stat". cari / var / spool -mtime +60
Cari setiap fail di bawah direktori / var / spool yang diubahsuai lebih daripada 60 hari yang lalu. cari / tmp -name core -type f -print | xargs / bin / rm -f
Cari fail bernamateras dalam atau di bawah direktori/ tmp dan padamnya.Perhatikan bahawa ini akan berfungsi dengan tidak betul jika terdapat sebarang nama fail yang mengandungi baris baru, petikan tunggal atau berganda, atau ruang. cari / tmp -name core -type f -print0 | xargs -0 / bin / rm -f
Cari fail bernamateras dalam atau di bawah direktori/ tmp dan padamnya, memproses nama fail sedemikian rupa sehingga nama fail atau direktori yang mengandungi petikan tunggal atau berganda, ruang atau baris baharu dikendalikan dengan betul. The-name ujian datang sebelum-tipe ujian untuk mengelakkan panggilanstat (2) pada setiap fail. cari . -type f -exec file '{}' ;
Menjalankan `fail 'pada setiap fail di dalam atau di bawah direktori semasa. Perhatikan bahawa pendakap dilampirkan dalam tanda petikan tunggal untuk melindungi mereka daripada tafsiran sebagai tanda baca skrip shell. Tanda titik semacam itu juga dilindungi oleh penggunaan backslash, walaupun ';' boleh digunakan dalam kes itu juga. cari / (-perm -4000 -fprintf /root/suid.txt '% # m% u% p n' ), (-size + 100M -fprintf /root/big.txt '% -10s% p n' )
Melangkau sistem fail sekali sahaja, menyenaraikan fail dan direktori setuid/root/suid.txt dan fail besar ke dalam/root/big.txt. cari $ HOME -mtime 0
Mencari fail dalam direktori rumah anda yang telah diubahsuai dalam 24 jam terakhir. Perintah ini berfungsi dengan cara ini kerana masa sejak setiap fail diubahsuai terakhir dibahagikan dengan 24 jam dan sebarang baki dibuang. Ini bermakna bahawa untuk dipadankan-mtime 0, fail akan mempunyai pengubahsuaian pada masa lalu yang kurang dari 24 jam yang lalu. cari . -perm 664
Cari fail yang telah membaca dan menulis kebenaran untuk pemiliknya, dan kumpulan, tetapi yang pengguna lain boleh membaca tetapi tidak menulis kepada. Fail yang memenuhi kriteria ini tetapi mempunyai set bit kebenaran lain (contohnya jika seseorang boleh melaksanakan fail) tidak akan dipadankan. cari . -perm -664
Cari fail yang telah membaca dan menulis kebenaran untuk pemilik dan kumpulan mereka, dan yang pengguna lain boleh membaca, tanpa mengambil kira kehadiran sebarang bit kebenaran tambahan (contohnya bit boleh laku). Ini akan sepadan dengan fail yang mempunyai mod 0777, contohnya. cari . -perm / 222
Cari fail yang boleh ditulis oleh seseorang (pemiliknya, atau kumpulan mereka, atau orang lain). cari . -perm / 220 cari . -perm / u + w, g + w cari . -perm / u = w, g = w
Ketiga perintah ini melakukan perkara yang sama, tetapi yang pertama menggunakan perwakilan oktal mod file, dan dua lainnya menggunakan bentuk simbolik. Perintah ini semua mencari fail yang boleh ditulis oleh pemilik atau kumpulan mereka. Fail tidak perlu ditulis oleh pemilik dan kumpulan untuk dipadankan; sama ada akan lakukan. cari . -perm -220 cari . -perm -g + w, u + w
Kedua-dua perintah ini melakukan perkara yang sama; cari fail yang boleh ditulis oleh pemilik dan kumpulan mereka. cari . -perm -444 -perm / 222! -perm / 111 cari . -perm -a + r -perm / a + w! -perm / a + x
Kedua-dua arahan kedua-dua carian untuk fail yang boleh dibaca untuk semua orang (-perm -444 atau -perm -a + r), sekurang-kurangnya set set tulis (-perm / 222 atau -perm / a + w) tetapi tidak boleh laksana untuk sesiapa sahaja (! -perm / 111 dan! -perm / a + x masing-masing) Penting: Menggunakan lelaki perintah ( % lelaki ) untuk melihat bagaimana arahan digunakan pada komputer tertentu anda.Pengendali
Contoh