9- Qidirish- find, locate, which, whereis
Ushbu hujjat Unix/Linux operatsion tizimlarida fayl va kataloglarni qidirish uchun ishlatiladigan asosiy buyruqlar â find
, locate
, which
va whereis
â haqida toâliq, chuqur va kitobiy uslubda maâlumot beradi. Maqsad ushbu buyruqlarni noldan boshlab, har birining mohiyatini, sintaksisini, ishlatilishini, afzalliklari, cheklovlari va amaliy qoâllanilishini silliq, oqimona va raqamlashsiz tarzda tahlil qilishdir. Hujjat faqat ushbu mavzuga bagâishlanadi va boshqa masalalarni qamrab olmaydi. Har bir buyruqning nazariy asoslari va amaliy misollari keltiriladi, bu foydalanuvchiga Unix/Linux fayl tizimida maâlumotlarni samarali topishda yordam beradi. Oldingi xatolar tuzatilib, mavzu noldan qayta yoziladi.
Kirish- Fayl va kataloglarni qidirishning muhimligi
Unix/Linux operatsion tizimlarida fayl tizimi ierarxik tuzilishga ega boâlib, unda fayllar va kataloglar tashkiliy tarmoq sifatida joylashadi. Ushbu tizimda muayyan fayl yoki katalogni topish tizim boshqaruvchilari, dasturchilar va oddiy foydalanuvchilar uchun muhim vazifadir. Masalan, konfiguratsiya fayllarini aniqlash, ijro etiladigan dasturlarni topish yoki tizim jurnallarini qidirish kabi ehtiyojlar kundalik ishda tez-tez yuzaga keladi. find
, locate
, which
va whereis
buyruqlari ushbu vazifalarni turli usullar bilan bajaradi, har biri oâziga xos maqsadga xizmat qiladi. find
fayl tizimida chuqur qidiruv imkonini bersa, locate
tezlik bilan ajralib turadi, which
va whereis
esa ijro etiladigan dasturlarni aniqlashga moâljallangan. Ushbu buyruqlarni toâgâri tushunish va qoâllash foydalanuvchiga fayl tizimida samarali harakatlanish imkonini beradi, vaqtni tejaydi va tizim resurslarini optimal boshqarishga yordam beradi.
find
buyrugâi: Fayl tizimida chuqur va moslashuvchan qidirish
find
buyrugâi: Fayl tizimida chuqur va moslashuvchan qidirishfind
buyruq Unix/Linux tizimlarida fayl va kataloglarni qidirishning eng kuchli va moslashuvchan vositalaridan biridir. U fayl tizimini real vaqt rejimida skanerlaydi va foydalanuvchiga fayllarni nom, oâlcham, turi, oâzgartirish vaqti, huquqlar yoki boshqa mezonlar asosida topish imkonini beradi. Ushbu buyruqning moslashuvchanligi uni tizim boshqaruvchilari va dasturchilar uchun ajralmas vositaga aylantiradi, chunki u deyarli har qanday qidiruv ehtiyojini qondira oladi.
find
buyruqning sintaksisi quyidagicha koârinishga ega
find [yoâl] [opsiyalar] [mezonlar]
Bu yerda âyoâlâ qidiruv boshlanadigan katalogni, âopsiyalarâ va âmezonlarâ esa qidiruvni aniqlashtirish uchun ishlatiladi. Oddiy misol sifatida, joriy katalogda â.txtâ kengaytmali fayllarni topish uchun quyidagi buyruq ishlatiladi
find . -name "*.txt"
Bu buyruq joriy katalog (.
bilan ifodalanadi) va uning ichki kataloglarida â.txtâ kengaytmali barcha fayllarni roâyxatlaydi. â-nameâ opsiyasi fayl nomiga asoslangan qidiruvni belgilaydi, â*â esa joker belgi sifatida har qanday belgilarni ifodalaydi.
find
buyruqning moslashuvchanligi uning koâplab mezonlari va opsiyalarida namoyon boâladi. Fayl turiga qarab qidirish uchun â-typeâ opsiyasi ishlatiladi
find /home -type f -name "*.log"
Bu buyruq â/homeâ katalogida faqat fayllarni (-type f
) va â.logâ kengaytmasiga ega boâlganlarni topadi. Kataloglarni qidirish uchun -type d
ishlatilishi mumkin. Fayl oâlchamiga qarab qidirish uchun â-sizeâ opsiyasi qoâllaniladi
find / -size +100M
Bu 100 megabaytdan katta fayllarni topadi. Oâzgartirish vaqtiga qarab qidirish uchun â-mtimeâ ishlatiladi:
find / -mtime -7
Bu soânggi yetti kun ichida oâzgartirilgan fayllarni topadi.
find
buyruqning muhim xususiyatlaridan biri topilgan fayllar ustida harakatlar qilish imkoniyatidir. Masalan, topilgan fayllarni oâchirish uchun
find . -name "*.bak" -delete
Bu â.bakâ kengaytmali barcha fayllarni oâchiradi. Topilgan fayllar ustida boshqa buyruqlarni bajarish uchun â-execâ opsiyasi ishlatiladi
find . -name "*.txt" -exec grep "salom" {} \;
Bu â.txtâ fayllarida âsalomâ soâzini qidiradi.
Amaliy misol: Tizimda soânggi 30 kun ichida yaratilgan va 1MB dan katta boâlgan barcha PDF fayllarni topish va ularni zaxira katalogiga nusxalash:
find / -type f -name "*.pdf" -size +1M -mtime -30 -exec cp {} /home/user/backup/ \;
Bu buyruq PDF fayllarni topadi va ularni â/home/user/backup/â katalogiga nusxalaydi. Yana bir amaliy misol sifatida, tizimda ruxsatsiz fayllarni topish:
find / -type f -perm /o=rwx
Bu dunyo miqyosida (others) oâqish, yozish va ijro etish huquqiga ega fayllarni topadi, bu xavfsizlik tahlilida foydali.
find
buyruqning afzalliklari uning chuqur moslashuvchanligi va real vaqt rejimida qidirish qobiliyatidadir. U fayl tizimining istalgan qismida, istalgan mezon asosida qidirish imkonini beradi, bu uni murakkab vazifalar uchun ideal qiladi. Biroq, katta fayl tizimlarida qidiruv koâp vaqt talab qilishi mumkin, chunki find
har bir fayl va katalogni skanerlaydi. Murakkab mezonlar yozishda xato qilish ehtimoli yuqori, bu esa notoâgâri natijalarga olib kelishi mumkin. Shuningdek, ruxsat cheklovlari tufayli baâzi kataloglarda qidiruv cheklanishi mumkin.
locate
buyrugâi: Tez qidirish uchun maâlumotlar bazasidan foydalanish
locate
buyrugâi: Tez qidirish uchun maâlumotlar bazasidan foydalanishlocate
buyruq fayl va kataloglarni tez topish uchun moâljallangan boâlib, real vaqt rejimida fayl tizimini skanerlash oârniga tizimning maâlumotlar bazasidan foydalanadi. Bu maâlumotlar bazasi updatedb
buyruq orqali yaratiladi va fayl tizimining indeksini saqlaydi, bu qidiruvni juda tezkor qiladi. locate
oddiy va tez qidiruvlar uchun ideal, lekin uning natijalari maâlumotlar bazasining yangiligiga bogâliq.
locate
buyruqning sintaksisi quyidagicha:
locate [opsiyalar] soâz
Masalan, âconfigâ soâzini oâz ichiga olgan fayllarni topish uchun:
locate config
Bu buyruq maâlumotlar bazasida âconfigâ soâzini oâz ichiga olgan barcha fayl va katalog yoâllarini roâyxatlaydi.
Maâlumotlar bazasini yangilash uchun
sudo updatedb
Bu buyruq fayl tizimining yangi indeksini yaratadi, yangi yoki oâchirilgan fayllarni aks ettiradi. locate
ning tezligi uning asosiy afzalligi boâlib, katta tizimlarda find
ga nisbatan ancha samarali ishlaydi. Masalan, serverda muayyan faylni topish uchun locate
soniyalar ichida natija berishi mumkin, find
esa daqiqalar talab qilishi mumkin.
Muhim opsiyalardan biri â-iâ boâlib, u katta-kichik harflarni eâtiborsiz qoldiradi:
locate -i config
Regular ifodalar yordamida qidirish uchun â-râ opsiyasi ishlatiladi:
locate -r "\.conf$"
Bu â.confâ kengaytmasi bilan tugaydigan fayllarni topadi.
Amaliy misol: Tizimda barcha â.jpgâ fayllarni topish va ularni roâyxat sifatida faylga saqlash:
locate -r "\.jpg$" > images_list.txt
Bu buyruq â.jpgâ kengaytmali fayllarni topadi va ularni âimages_list.txtâ fayliga yozadi. Yana bir misol sifatida, tizim konfiguratsiya fayllarini topish:
locate -r "\.conf$" | grep "/etc"
Bu â/etcâ katalogidagi â.confâ fayllarni topadi.
locate
buyruqning afzalliklari uning tezkorligi va soddaligidadir. U oddiy nom asosidagi qidiruvlar uchun ideal, ayniqsa fayl nomlari aniq boâlsa. Biroq, uning cheklovlari maâlumotlar bazasiga bogâliqlik bilan bogâliq: agar baza yangilanmagan boâlsa, yangi fayllar yoki oâchirilgan fayllar aks etmaydi. Shuningdek, locate
find
kabi murakkab mezonlarni (oâlcham, vaqt, huquqlar) qoâllab-quvvatlamaydi va faqat maâlumotlar bazasidagi yoâllarni roâyxatlaydi.
which
buyruq: Ijro etiladigan fayllarni topish
which
buyruq: Ijro etiladigan fayllarni topishwhich
buyruq foydalanuvchining $PATH
muhit oâzgaruvchisida koârsatilgan yoâllarda ijro etiladigan fayllarni topish uchun ishlatiladi. U odatda tizim buyruqlari yoki dasturlarning joylashuvini aniqlashda qoâllaniladi, masalan, muayyan dastur qayerda oârnatilganligini bilish uchun. Bu dasturchilar uchun muhim, chunki loyihalarda toâgâri dastur versiyasini ishlatish zarur.
which
buyruqning sintaksisi quyidagicha:
which [dastur_nomi]
Masalan, bash
dasturining joylashuvini aniqlash uchun:
which bash
Natija odatda quyidagicha boâladi:
/bin/bash
Bu bash
dasturining â/bin/bashâ yoâlida joylashganligini koârsatadi.
Bir nechta dasturlarni qidirish uchun:
which bash python3
Bu har bir dastur uchun alohida yoâlni chiqaradi. Agar dastur topilmasa, hech qanday natija qaytmaydi.
Muhim opsiyalardan biri â-aâ boâlib, u $PATH
da topilgan barcha mos keluvchi fayllarni roâyxatlaydi:
which -a python
Bu turli yoâllarda joylashgan âpythonâ dasturining barcha versiyalarini koârsatadi, masalan:
/usr/bin/python
/usr/local/bin/python
Amaliy misol: Tizimda qaysi python
versiyasi ishlatilayotganligini aniqlash:
which -a python3
Bu loyihada toâgâri Python versiyasini tanlashda yordam beradi. Yana bir misol sifatida, node
dasturining joylashuvini tekshirish:
which node
Bu Node.js loyihalarida ishlatiladigan versiyani aniqlashda foydali.
which
buyruqning afzalliklari uning soddaligi va ijro etiladigan fayllarni tez topishidadir. U dasturchilar va tizim boshqaruvchilari uchun muhim, chunki toâgâri dastur versiyasini aniqlashda yordam beradi. Biroq, u faqat $PATH
da koârsatilgan yoâllarni qidiradi va boshqa kataloglarda joylashgan fayllarni topa olmaydi. Shuningdek, u faqat ijro etiladigan fayllar bilan ishlaydi, oddiy fayllar yoki kataloglarni qidira olmaydi.
whereis
buyruq: Dastur, manba va hujjatlarning joylashuvini topish
whereis
buyruq: Dastur, manba va hujjatlarning joylashuvini topishwhereis
buyruq dastur, uning manba kodlari va hujjatlari (masalan, man sahifalari) joylashgan yoâllarni topish uchun ishlatiladi. U which
ga oâxshaydi, lekin koâproq maâlumot taqdim etadi, chunki nafaqat ijro etiladigan fayllarni, balki tegishli manba kodlari va hujjatlarni ham qidiradi. Bu tizim boshqaruvchilari uchun foydali, chunki dastur bilan bogâliq barcha resurslarni bir joyda koârish imkonini beradi.
whereis
buyruqning sintaksisi quyidagicha:
whereis [dastur_nomi]
Masalan:
whereis bash
Natija quyidagicha boâlishi mumkin:
bash: /bin/bash /usr/share/man/man1/bash.1.gz
Bu âbashâ dasturining ijro etiladigan fayli â/bin/bashâ da, hujjati esa â/usr/share/man/man1/bash.1.gzâ da joylashganligini koârsatadi.
Muhim opsiyalardan biri â-bâ boâlib, u faqat ikkilik (binary) fayllarni qidiradi:
whereis -b bash
Yana bir opsiya â-mâ boâlib, u faqat hujjat fayllarini qidiradi:
whereis -m bash
Amaliy misol: Tizimda gcc
kompilyatorining barcha resurslarini topish:
whereis gcc
Natija quyidagicha boâlishi mumkin:
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz
Bu kompilyator bilan bogâliq barcha fayllarni koârish imkonini beradi. Yana bir misol sifatida, git
hujjatlarini topish:
whereis -m git
Bu Git bilan bogâliq man sahifalarini topadi.
whereis
buyruqning afzalliklari uning keng qamrovidadir: u dastur bilan bogâliq barcha resurslarni topadi. Biroq, u faqat tizim yoâllarida (masalan, /bin
, /usr/bin
, /usr/share/man
) qidiradi va oddiy fayllar yoki maxsus kataloglarni topa olmaydi. Shuningdek, u find
kabi murakkab mezonlarni qoâllab-quvvatlamaydi.
Buyruqlarning qiyosiy tahlili va amaliy qoâllanilishi
find
, locate
, which
va whereis
buyruqlari fayl tizimida qidiruvni turli maqsadlar uchun soddalashtiradi. find
murakkab qidiruvlar uchun eng moslashuvchan vosita boâlib, fayl nomlari, oâlchamlari, turlari yoki vaqtiga qarab aniq natijalar beradi. Masalan, serverda soânggi bir soat ichida oâzgartirilgan log fayllarni topish:
find /var/log -type f -name "*.log" -mmin -60
Bu tizim jurnallarini tahlil qilishda foydali. locate
tezlikda ustun boâlib, keng tarqalgan fayl nomlari boâyicha qidiruvda samarali:
locate -r "\.conf$" | grep "/etc"
Bu â/etcâ katalogidagi konfiguratsiya fayllarini topadi. which
ijro etiladigan dasturlarni aniqlashda qulay:
which node
Bu Node.js loyihalarida ishlatiladigan versiyani aniqlaydi. whereis
dastur bilan bogâliq barcha resurslarni topishda foydali:
whereis -m git
Bu Git hujjatlarini koârish imkonini beradi.
Har bir buyruqning oâziga xos qoâllanilish sohasi bor: find
murakkab va aniq qidiruvlar uchun, locate
tez va umumiy qidiruvlar uchun, which
va whereis
esa dastur resurslarini aniqlashda muhim. Toâgâri buyruqni tanlash qidiruv samaradorligini oshiradi va vaqtni tejaydi.
Afzalliklar va cheklovlar
Ushbu buyruqlarning umumiy afzalliklari ularning Unix/Linux tizimlarida fayl tizimini boshqarishdagi muhim rolidadir. find
moslashuvchanligi bilan ajralib turadi, locate
tezlikda, which
va whereis
esa dastur resurslarini aniqlashda samarali. Biroq, find
koâp resurs talab qilishi mumkin, ayniqsa katta tizimlarda. locate
maâlumotlar bazasiga bogâliq boâlib, yangilanmagan baza notoâgâri natijalar berishi mumkin. which
va whereis
faqat tizim yoâllarida ishlaydi va oddiy fayllarni qidira olmaydi. Barcha buyruqlar asosan matnli fayllar va tizim resurslari bilan ishlashga moâljallangan, ikkilik fayllar yoki maxsus tuzilmalar bilan ishlaganda cheklovlarga duch kelishi mumkin.
Xulosa
Fayl va kataloglarni qidirish Unix/Linux tizimlarida muhim vazifa boâlib, find
, locate
, which
va whereis
buyruqlari bu jarayonni turli usullarda soddalashtiradi. find
real vaqt rejimida chuqur qidiruvni taâminlaydi, locate
maâlumotlar bazasi orqali tez natija beradi, which
ijro etiladigan fayllarni, whereis
esa dastur bilan bogâliq barcha resurslarni topadi. Amaliy misollar ushbu buyruqlarning real dunyoda qoâllanilishini koârsatadi, masalan, log fayllarni tahlil qilish, dastur versiyalarini aniqlash yoki tizim resurslarini topish. Ushbu buyruqlarni chuqur tushunish va toâgâri ishlatish foydalanuvchiga fayl tizimida samarali harakatlanish va maâlumotlarni tez topish imkonini beradi, tizim boshqaruvini osonlashtiradi va ish samaradorligini oshiradi.
Last updated
Was this helpful?