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 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 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. locatening tezligi uning asosiy afzalligi bo‘lib, katta tizimlarda findga 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 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, 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?