Fayl nomini toping. Find buyrug'i va uning variantlari misollarda ko'rsatilgan. Find dan foydalanishga misollar

Bu Ubuntu tizimlariga o'rnatilgandan so'ng Apache2 serverining to'g'ri ishlashini tekshirish uchun ishlatiladigan standart xush kelibsiz sahifadir. U Debian'dagi ekvivalent sahifaga asoslangan bo'lib, undan Ubuntu Apache paketi olinadi. Agar siz ushbu sahifani o'qiy olsangiz, bu saytda o'rnatilgan Apache HTTP serveri to'g'ri ishlayotganligini bildiradi. Sen ... kerak ushbu faylni almashtiring HTTP serveringiz bilan ishlashni davom ettirishdan oldin (/var/www/html/index.html manzilida joylashgan).

Agar siz ushbu veb-saytning oddiy foydalanuvchisi bo'lsangiz va bu sahifa nima haqida ekanligini bilmasangiz, ehtimol bu sayt texnik xizmat ko'rsatish tufayli hozirda mavjud emasligini bildiradi. Muammo davom etsa, iltimos, sayt administratoriga murojaat qiling.

Konfiguratsiyaga umumiy nuqtai

Ubuntu'ning Apache2 standart konfiguratsiyasi yuqoridagi standart konfiguratsiyadan farq qiladi va Ubuntu vositalari bilan ishlash uchun optimallashtirilgan bir nechta fayllarga bo'lingan. Konfiguratsiya tizimi to'liq hujjatlashtirilgan /usr/share/doc/apache2/README.Debian.gz. To'liq hujjatlar uchun bu erga qarang. uchun hujjatlar veb-server Agar apache2-doc paketi ushbu serverda o'rnatilgan bo'lsa, o'zini qo'llanmaga kirish orqali topish mumkin.

Ubuntu tizimlarida Apache2 veb-serverini o'rnatish uchun konfiguratsiya sxemasi quyidagicha:

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.yuklash | `-- *.conf |-- conf-faol | `-- *.conf |-- saytlar yoqilgan | `-- *.conf

  • apache2.conf asosiy konfiguratsiya faylidir. Veb-serverni ishga tushirishda qolgan barcha konfiguratsiya fayllarini qo'shish orqali qismlarni birlashtiradi.
  • ports.conf har doim asosiy konfiguratsiya fayliga kiritilgan. U kiruvchi ulanishlar uchun tinglash portlarini aniqlash uchun ishlatiladi va bu faylni istalgan vaqtda sozlash mumkin.
  • Mods-enabled/, conf-enabled/ va sites-enabled/ kataloglaridagi konfiguratsiya fayllari mos ravishda modullarni, global konfiguratsiya fragmentlarini yoki virtual xost konfiguratsiyalarini boshqaradigan maxsus konfiguratsiya parchalarini o'z ichiga oladi.
  • Ular o'zlarining tegishli *-available/ hamkasblaridagi mavjud konfiguratsiya fayllarini simli bog'lash orqali faollashtiriladi. Bularni bizning yordamchilarimiz a2enmod, a2dismod, a2ensite, a2dissite va a2enconf, a2disconf yordamida boshqarish kerak. Batafsil ma'lumot uchun ularning tegishli man sahifalariga qarang.
  • Ikkilik apache2 deb ataladi. Atrof muhit o'zgaruvchilaridan foydalanish tufayli, standart konfiguratsiyada apache2 /etc/init.d/apache2 yoki apache2ctl bilan ishga tushirilishi/to'xtatilishi kerak. /usr/bin/apache2 ga to'g'ridan-to'g'ri qo'ng'iroq qilish ishlamaydi standart konfiguratsiya bilan.

Hujjat ildizlari

Odatiy bo'lib, Ubuntu veb-brauzer orqali kirishga ruxsat bermaydi har qanday/var/www , public_html kataloglarida (yoqilganda) va /usr/share (veb-ilovalar uchun)da joylashganlardan tashqari fayl. Agar saytingiz boshqa joyda joylashgan (masalan, /srv) veb-hujjat ildizidan foydalanayotgan bo'lsa, /etc/apache2/apache2.conf dagi hujjat ildiz katalogini oq ro'yxatga kiritishingiz kerak bo'lishi mumkin.

Standart Ubuntu hujjat ildizi /var/www/html dir. Siz /var/www ostida o'zingizning virtual xostlaringizni yaratishingiz mumkin. Bu avvalgi versiyalardan farq qiladi, bu esa yaxshi xavfsizlikni ta'minlaydi.

Xabar berish muammolari

Ubuntu bilan Apache2 paketidagi xatolar haqida xabar berish uchun ubuntu-bug vositasidan foydalaning. Biroq, yangi xato haqida xabar berishdan oldin tekshiring.

Iltimos, modullarga (masalan, PHP va boshqalar) tegishli xatolar haqida veb-serverning o'ziga emas, tegishli paketlarga xabar bering.

Har qanday operatsion tizimda ishlayotganda, ba'zida asboblardan foydalanish kerak bo'ladi tezkor qidiruv u yoki bu fayl. Bu Linux uchun ham tegishli, shuning uchun hammasi quyida muhokama qilinadi mumkin bo'lgan usullar ushbu operatsion tizimda fayllarni qidiring. Asbob sifatida taqdim etiladi fayl menejeri, va ishlatiladigan buyruqlar "Terminal".

Agar kerakli faylni topish uchun ko'plab qidiruv parametrlarini ko'rsatish kerak bo'lsa, u holda buyruq toping almashtirib bo'lmaydigan. Uning barcha o'zgarishlarini ko'rib chiqishdan oldin, sintaksis va variantlarni ko'rib chiqishga arziydi. U quyidagi sintaksisga ega:

yo'l variantini toping

Qayerda yo'l- bu qidiruv amalga oshiriladigan katalog. Yo'lni belgilashning uchta asosiy varianti mavjud:

  • / — ildiz va qo‘shni kataloglarda qidirish;
  • ~ — asosiy katalog bo'yicha qidirish;
  • ./ — foydalanuvchi hozir joylashgan katalogdan qidirish.

Shuningdek, siz to'g'ridan-to'g'ri fayl joylashgan katalogning o'ziga yo'lni belgilashingiz mumkin.

Variantlar toping juda ko'p va ular tufayli kerakli o'zgaruvchilarni o'rnatish orqali moslashuvchan qidiruv sozlamalarini amalga oshirishingiz mumkin:

  • -ism- izlayotgan element nomini asos qilib olgan holda qidiruvni amalga oshirish;
  • -foydalanuvchi- muayyan foydalanuvchiga tegishli fayllarni qidirish;
  • -guruh- foydalanuvchilarning ma'lum bir guruhini qidirish;
  • -perm- belgilangan kirish rejimiga ega fayllarni ko'rsatish;
  • -hajmi n- ob'ektning o'lchamiga qarab qidirish;
  • -mtime +n -n- dan ko'proq o'zgargan fayllarni qidirish ( +n) yoki kamroq ( -n) kun oldin;
  • -turi- muayyan turdagi fayllarni qidirish.

Siz izlayotgan elementlarning ko'p turlari ham mavjud. Mana ularning ro'yxati:

  • b- blok;
  • f- oddiy;
  • p- nomli quvur;
  • d- katalog;
  • l- havola;
  • s- rozetka;
  • c- ramziy.

Buyruqlar sintaksisi va variantlarini batafsil tahlil qilgandan so'ng toping Siz to'g'ridan-to'g'ri tasviriy misollarga o'tishingiz mumkin. Buyruqni ishlatish variantlari ko'pligi sababli, misollar barcha o'zgaruvchilar uchun emas, balki faqat eng ko'p ishlatiladiganlar uchun keltiriladi.

1-usul: Ism bo'yicha qidirish (nom varianti)

Ko'pincha foydalanuvchilar tizimni qidirish variantidan foydalanadilar -ism, shuning uchun biz boshlaymiz. Keling, bir nechta misollarni ko'rib chiqaylik.

Kengaytma bo'yicha qidirish

Aytaylik, siz tizimda kengaytmali faylni topishingiz kerak ".xlsx", bu katalogda joylashgan "Dropbox". Buni amalga oshirish uchun siz quyidagi buyruqni ishlatishingiz kerak:

toping /home/user/Dropbox -name "*.xlsx" -chop etish

Uning sintaksisidan shuni aytishimiz mumkinki, qidiruv katalogda amalga oshiriladi "Dropbox" ("/home/user/Dropbox") va kerakli ob'ekt kengaytmaga ega bo'lishi kerak ".xlsx". Yulduzcha, qidiruv ushbu kengaytmaning barcha fayllarida ularning nomini hisobga olmagan holda amalga oshirilishini bildiradi. "-chop etish" qidiruv natijalari ko'rsatilishini bildiradi.

Fayl nomi bo'yicha qidirish

Masalan, siz katalogda qidirmoqchisiz "/uy" nomi bilan fayl "bo'laklar", lekin uning kengaytmasi noma'lum. Bunday holda siz quyidagilarni qilishingiz kerak:

find ~ -ism "topaklar*" -chop etish

Ko'rib turganingizdek, bu erda ishlatiladigan belgi «~» , ya'ni qidiruv uy katalogida amalga oshiriladi. Variantdan keyin "-ism" qidirilayotgan fayl nomi ko'rsatilgan ( "bo'laklar*"). Oxiridagi yulduzcha qidiruv kengaytmani hisobga olmagan holda faqat ism bo'yicha amalga oshirilishini anglatadi.

Ismning birinchi harfi bo'yicha qidiring

Agar siz faqat fayl nomining birinchi harfini eslab qolsangiz, uni topishga yordam beradigan maxsus buyruq sintaksisi mavjud. Masalan, siz dan harfi bilan boshlangan faylni topmoqchisiz "g" oldin "l", va siz uning qaysi katalogda ekanligini bilmaysiz. Keyin quyidagi buyruqni bajarishingiz kerak:

toping / -nom "*" -chop etish

Asosiy buyruqdan so'ng darhol keladigan "/" belgisiga ko'ra, qidiruv asosiy katalogdan boshlab, ya'ni butun tizim bo'ylab amalga oshiriladi. Keyingi, qism «*» qidirilayotgan so'z ma'lum bir harf bilan boshlanishini bildiradi. Bizning holatda dan "g" oldin "l".

Aytgancha, agar siz fayl kengaytmasini bilsangiz, u holda belgidan keyin «*» belgilashingiz mumkin. Misol uchun, siz bir xil faylni topishingiz kerak, lekin uning kengaytmasi borligini bilasiz ".odt". Keyin ushbu buyruqdan foydalanishingiz mumkin:

toping / -name "*.odt" -chop etish

2-usul: Kirish rejimi bo'yicha qidirish (-perm opsiyasi)

Ba'zan siz nomini bilmagan ob'ektni topishingiz kerak, lekin siz uning qanday kirish rejimiga ega ekanligini bilasiz. Keyin variantni ishlatishingiz kerak "-perm".

Uni ishlatish juda oddiy, siz faqat qidiruv manzilini va kirish rejimini belgilashingiz kerak. Mana shunday buyruqning namunasi:

topish ~ -perm 775 -chop etish

Ya'ni, qidiruv uy bo'limida amalga oshiriladi va qidirilayotgan ob'ektlar kirish huquqiga ega bo'ladi 775 . Bu raqam oldiga "-" belgisini ham yozishingiz mumkin, keyin topilgan ob'ektlar noldan belgilangan qiymatgacha ruxsat bitlariga ega bo'ladi.

3-usul: Foydalanuvchi yoki guruh bo'yicha qidirish (variantlar -foydalanuvchi va -guruh)

Har bir operatsion tizimda foydalanuvchilar va guruhlar mavjud. Agar siz ushbu toifalardan biriga tegishli ob'ektni topmoqchi bo'lsangiz, variantdan foydalanishingiz mumkin "-foydalanuvchi" yoki "-guruh", mos ravishda.

Faylni foydalanuvchi nomi bilan toping

Masalan, siz katalogdan topishingiz kerak "Dropbox" fayl "Chiroqlar", lekin siz uning nima deb nomlanganini bilmaysiz, faqat u foydalanuvchiga tegishli ekanligini bilasiz "foydalanuvchi". Keyin quyidagi buyruqni bajarishingiz kerak:

toping /home/user/Dropbox -user user -print

Ushbu buyruqda siz kerakli katalogni ( /home/user/Dropbox), foydalanuvchiga tegishli faylni qidirish kerakligini ko'rsatdi ( -foydalanuvchi) va ushbu fayl qaysi foydalanuvchiga tegishli ekanligini ko'rsatdi ( foydalanuvchi).

Guruh nomi bo'yicha fayl qidirilmoqda

Muayyan guruhga tegishli faylni qidirish ham xuddi shunday oson - faqat variantni almashtirish kerak "-foydalanuvchi" variantga "-guruh" va ushbu guruh nomini ko'rsating:

toping / -guruh mehmoni -chop etish

Ya'ni, siz tizimda guruhga tegishli faylni topmoqchi ekanligingizni ko'rsatdingiz "mehmon". Qidiruv butun tizim bo'ylab amalga oshiriladi, bu belgi bilan ko'rsatilgan «/» .

4-usul: Faylni turi bo'yicha qidiring (-type varianti)

Linuxda ma'lum turdagi elementni topish juda oddiy, siz faqat tegishli variantni ko'rsatishingiz kerak ( -turi) va turini belgilang. Maqolaning boshida qidirish uchun ishlatilishi mumkin bo'lgan barcha turdagi belgilar sanab o'tilgan.

Masalan, siz uy katalogingizdagi barcha bloklangan fayllarni topmoqchisiz. Bunday holda sizning buyruqingiz quyidagicha ko'rinadi:

topish ~ -turi b -chop etish

Shunga ko'ra, siz fayl turi bo'yicha qidirayotganingizni ko'rsatdingiz, bu variantdan dalolat beradi "-turi", va keyin blok fayl belgisini qo'yish orqali uning turini aniqlang - "b".

Xuddi shu tarzda buyruqdagi belgini kiritib, kerakli katalogdagi barcha kataloglarni ko'rsatishingiz mumkin "d":

toping /home/user -turi d -print

5-usul: Faylni o'lcham bo'yicha qidirish (-size varianti)

Agar siz fayl haqida faqat uning hajmini bilsangiz, uni topish uchun bu ham etarli bo'lishi mumkin. Masalan, siz ma'lum bir katalogda 120 MB faylni topmoqchi bo'lsangiz, buning uchun quyidagilarni bajaring:

toping /home/user/Dropbox -hajmi 120M -chop etish

Ko'rib turganingizdek, bizga kerak bo'lgan fayl topildi. Ammo, agar u qaysi katalogda ekanligini bilmasangiz, buyruq boshida ildiz katalogini ko'rsatib, butun tizimni qidirishingiz mumkin:

topish / -hajmi 120M -chop etish

Agar siz faylning taxminiy hajmini bilsangiz, unda bu ish uchun maxsus buyruq mavjud. Siz ro'yxatdan o'tishingiz kerak "Terminal" xuddi shu narsa, faqat fayl hajmini ko'rsatishdan oldin belgi qo'ying «-» (agar siz belgilangan hajmdan kichikroq fayllarni topishingiz kerak bo'lsa) yoki «+» (agar siz izlayotgan fayl hajmi belgilangan hajmdan kattaroq bo'lsa). Mana shunday buyruqning namunasi:

toping /home/user/Dropbox +100M -chop etish

6-usul: O'zgartirish sanasi bo'yicha faylni toping (variant -mtime)

Ba'zida faylni o'zgartirilgan sana bo'yicha qidirish eng qulay bo'ladi. Linuxda bu variant yordamida amalga oshiriladi "-mtime". Foydalanish juda oddiy, keling, misol yordamida hamma narsani ko'rib chiqaylik.

Keling, papkada aytaylik "Rasmlar" biz oxirgi 15 kun ichida o'zgarishlarga duchor bo'lgan ob'ektlarni topishimiz kerak. Bu erda nima yozishingiz kerak "Terminal":

toping /home/user/Images -mtime -15 -chop etish

Ko'rib turganingizdek, ushbu parametr nafaqat belgilangan davrda o'zgargan fayllarni, balki papkalarni ham ko'rsatadi. Shuningdek, u teskari yo'nalishda ishlaydi - belgilangan sanadan keyin o'zgartirilgan ob'ektlarni topishingiz mumkin. Buning uchun raqamli qiymatdan oldin belgini kiritishingiz kerak «+» :

toping /home/user/Images -mtime +10 -chop etish

GUI

Grafik interfeys yangi o'rnatgan yangi boshlanuvchilar uchun hayotni ancha osonlashtiradi Linux tarqatish. Bu usul Qidiruv Windows-dagiga juda o'xshaydi, garchi u taklif qilayotgan barcha imtiyozlarni bera olmasa "Terminal". Lekin birinchi narsa. Shunday qilib, tizimning grafik interfeysi yordamida Linuxda fayllarni qanday qidirishni ko'rib chiqamiz.

1-usul: tizim menyusi orqali qidiring

Endi biz menyu orqali fayllarni qanday qidirishni ko'rib chiqamiz Linux tizimlari. Amalga oshirilgan harakatlar Ubuntu 16.04 LTS tarqatishda amalga oshiriladi, ammo ko'rsatmalar hamma uchun umumiydir.

Ushbu maqola kitobdan parcha" Linux va Unix - Shellda dasturlash", Devid Tansli.

Men biroz shoshqaloqlik bilan tahrir qildim, agar biron bir matn terish xatosini ko'rsangiz, izohlarda yozing.

Ko'pincha ish paytida kirish huquqlari, hajmi, turi va boshqalar kabi ma'lum xususiyatlarga ega fayllarni qidirish kerak bo'ladi. Find buyrug'i universal qidiruv vositasidir: u fayllar va kataloglarni qidirish, tizimdagi barcha kataloglarni yoki faqat joriy katalogni ko'rish imkonini beradi.

Ushbu bob find buyrug'idan foydalanish bilan bog'liq quyidagi mavzularni o'z ichiga oladi:

buyruq variantlarini toping;

find buyrug'ining turli xil variantlaridan foydalanishga misollar;

Xargs va topish buyruqlarini birgalikda ishlatishga misollar.

Find buyrug'ining imkoniyatlari keng va taklif qilingan variantlar ro'yxati katta. Ushbu bobda ulardan eng muhimlari tasvirlangan. Find buyrug'i hatto disklarni qidirishi mumkin NFS (Tarmoq fayl tizimi- tarmoq fayl tizimi), albatta, agar sizda tegishli ruxsatnomalar mavjud bo'lsa. IN shunga o'xshash holatlar buyruq odatda ichida bajariladi fon, chunki katalog daraxtini ko'rib chiqish ko'p vaqt talab etadi. Find buyrug'ining umumiy formati:

toping path_name -variantlar

Qayerda yo'l_nomi- bu qidiruvni boshlash uchun katalog. '.' belgisi joriy katalogni belgilash uchun ishlatiladi, / belgisi ildiz katalogi va "~" belgisi o'zgaruvchida saqlanadi. $HOME boshlang'ich katalog joriy foydalanuvchi.

2.1. buyruq variantlarini toping

Find buyrug'ining asosiy variantlari tavsifiga to'xtalib o'tamiz.

Ism Nomlari berilgan naqshga mos keladigan fayllarni qidiring

Chop etish Topilgan fayllarning toʻliq nomlarini standart chiqishga yozadi

Perm Belgilangan kirish rejimi o'rnatilgan fayllarni qidiring

Prune Bu topish buyrug'i allaqachon topilgan yo'l nomi bo'yicha rekursiv qidiruvni amalga oshirishning oldini olish uchun ishlatiladi; agar -depth opsiyasi ko'rsatilgan bo'lsa, -prune parametri e'tiborga olinmaydi

Foydalanuvchi ma'lum foydalanuvchiga tegishli fayllarni qidirish

Guruh Berilgan guruhga tegishli fayllarni qidirish

Vaqt -n +n Tarkiblari (-) dan kam yoki (+) dan ortiq oʻzgartirilgan fayllarni qidiring. n kun oldin; Shuningdek, -atime va -ctime variantlari mavjud bo'lib, ular fayllarni oxirgi o'qish sanasi va fayl atributlarining oxirgi o'zgarishi sanasi bo'yicha qidirish imkonini beradi.

Nogroup Mavjud bo'lmagan guruhga tegishli fayllarni qidirish, boshqacha aytganda, faylda hech qanday yozuv yo'q. /etc/groups

Nouser Mavjud bo'lmagan foydalanuvchiga tegishli bo'lgan fayllarni topadi, ular uchun, boshqacha qilib aytganda, faylda hech qanday yozuv yo'q. /etc/passwd

Yangiroq fayl Belgilangan fayldan kechroq yaratilgan fayllarni qidiring

Muayyan turdagi fayllarni qidirishni yozing, xususan: b- maxsus blok fayl; d- katalog; Bilan- maxsus belgilar fayli; p- nomli quvur; l- ramziy aloqa; s- rozetka; f- oddiy fayl

Hajmi n Hajmi bo'lgan fayllarni qidiring n birliklar; Quyidagi o'lchov birliklari mumkin: b- blok hajmi 512 bayt (standart sozlamalar); Bilan- bayt; k- kilobayt (1024 bayt); w- ikki baytli so'z

Chuqurlik Fayllarni qidirishda avval joriy katalogning mazmuni ko'rib chiqiladi va shundan keyingina katalogning o'ziga mos yozuv tekshiriladi.

F turi Muayyan turdagi fayl tizimidagi fayllarni qidiradi; Odatda tegishli ma'lumotlar faylda saqlanadi /etc/fstab, bu mahalliy kompyuterda ishlatiladigan fayl tizimlari haqidagi ma'lumotlarni o'z ichiga oladi

Mount Faqat joriy fayl tizimidagi fayllarni qidiradi; Ushbu parametrning ekvivalenti -xdev -exec variantidir Tarjimon buyrug'ini bajarish qobiq barcha aniqlangan fayllar uchun; bajarilgan buyruqlar format buyrug'iga ega ();

(belgilar orasidagi bo'shliqqa e'tibor bering () va 😉

Ok -exec ga o'xshaydi, lekin buyruqni bajarishdan oldin so'rovni ko'rsatadi

2.1.1. Variant -ism

Find buyrug'i bilan ishlashda ko'pincha -name variantidan foydalaniladi. Undan so'ng qo'shtirnoq ichida fayl nomi qolipi bo'lishi kerak.
Agar kengaytmali barcha fayllarni topishingiz kerak bo'lsa. Xabar uy katalogingizda yo'l nomi sifatida belgini belgilang. O'zgaruvchidan boshlang'ich katalog nomi chiqariladi $HOME.

$ find ~ -nomi "*.txt" -chop etish

Kengaytmali barcha fayllarni topish uchun .Xabar joriy katalogda joylashgan bo'lsa, quyidagi buyruqdan foydalaning:

$toping. -nomi "*.txt" -chop etish

Joriy katalogdagi nomlarida kamida bitta bosh harf bo'lgan barcha fayllarni topish uchun quyidagi buyruqni kiriting:

$toping. -nomi "*" -chop etish

Katalogda toping /va boshqalar nomlari belgilar bilan boshlanadigan fayllar " mezbon", buyruq ruxsat beradi

$ find /etc -name "hoat*" -chop etish

Kengaytmali barcha fayllar uchun boshlang'ich katalogni qidiring .Xabar nomlari nuqta bilan boshlanadigan fayllar bilan bir qatorda buyruq ishlab chiqaradi

$ find ~ -name "*.txt" -print -o -ism ".*" -chop etish

Variant -O mantiqiy OR operatsiyasi uchun belgidir. Agar u ishlatilsa, oddiy nomli fayllardan tashqari, nomlari nuqta bilan boshlanadigan fayllar topiladi.

Agar siz tizimdagi kengaytmaga ega bo'lmagan barcha fayllarni ro'yxatga olishni istasangiz, quyidagi buyruqni bajaring, lekin ehtiyot bo'ling, chunki bu tizimni sezilarli darajada sekinlashtirishi mumkin:

$ find / -name "*" -chop etish

Quyida nomlari kichik harflar, keyin ikkita raqam va kengaytma bilan boshlangan barcha fayllarni qanday topish mumkinligi ko'rsatilgan. .Xabar(Masalan, akh37.xt):

$toping. -ism » [a-x] [a-x] . txt" - chop etish

2.1.2. Variant -perm

-perm opsiyasi belgilangan kirish rejimiga ega fayllarni topish imkonini beradi. Masalan, kirish rejimiga ega fayllarni qidirish uchun 755 (har qanday foydalanuvchi ularni ko'rishi va bajarishi mumkin, lekin faqat egasi yozish huquqiga ega) siz quyidagi buyruqdan foydalanishingiz kerak:

$toping. -perm 755 -chop etish

Agar rejim qiymatidan oldin chiziqcha qo'ysangiz, u barcha belgilangan ruxsat bitlari o'rnatilgan fayllarni qidiradi va qolgan bitlar e'tiborga olinmaydi. Masalan, quyidagi buyruq boshqa foydalanuvchilar to'liq kirish huquqiga ega bo'lgan fayllarni qidiradi:

$toping. -perm -007 -chop etish

Agar rejim qiymatidan oldin ortiqcha belgisi kiritilsa, belgilangan ruxsat bitlaridan kamida bittasi o'rnatilgan fayllar qidiriladi va qolgan bitlar e'tiborga olinmaydi.

2.1.3. Variant - olxo'ri

Muayyan katalogni qidirishni xohlamasangiz, -prune opsiyasidan foydalaning. Bu joriy yo'l nomi bo'yicha qidirishni to'xtatishni buyuradi. Agar yo'l nomi katalogga ishora qilsa, find buyrug'i unga kirmaydi. Agar -depth opsiyasi mavjud bo'lsa, -prune opsiyasi e'tiborga olinmaydi.

Quyidagi buyruq quyi katalogga kirmasdan joriy katalogni qidiradi /bin:

$toping. -nomi "bin" -prune -o -chop etish

2.1.4. Variantlar -user va --nouser

Muayyan foydalanuvchiga tegishli fayllarni topish uchun find buyrug'ida -user variantini, keyin esa foydalanuvchi nomini belgilang. Masalan, foydalanuvchiga tegishli bo'lgan fayllarni dastlabki katalogdan qidirish Deyv, quyidagi buyruq yordamida amalga oshiriladi:

$ find ~ -foydalanuvchi Dave -chop etish

Katalogdan qidiring /va boshqalar foydalanuvchiga tegishli fayllar uucp, quyidagi buyruqni bajaradi:

$ find /etc -uaer uucp -print

-nouser opsiyasi tufayli mavjud bo'lmagan foydalanuvchilarga tegishli fayllarni qidirish mumkin. Undan foydalanganda egalari faylda yozuvga ega bo'lmagan fayllar uchun qidiruv amalga oshiriladi /etc/passwd. Muayyan foydalanuvchi nomini ko'rsatishning hojati yo'q, find buyrug'i barcha kerakli ishlarni o'zi bajaradi. Mavjud bo'lmagan foydalanuvchilarga tegishli bo'lgan va katalogda joylashgan barcha fayllarni topish uchun /uy, ushbu buyruqni kiriting:

$ find /home -nouaer -print

2.1.5. Variantlar -guruh va -nogroup

-group va -nogroup variantlari ga o'xshaydi -user-nouser/guruhdagi foydalanuvchilarga tegishli barcha fayllarning ilovalari amal qiladi:

$ toping /arra -guruh actta -chop etish

Quyidagi buyruq butun tizimda mavjud bo'lmagan guruhlarga tegishli fayllarni qidiradi:

$ find / -nogroup -print

2.1.6. Variant -mtime

Kirish qilingan fayllarni qidirishda -mtime parametridan foydalanish kerak X kun oldin. Variant argumenti "-" belgisi bilan ta'minlangan bo'lsa, bir muddat foydalanilmagan fayllar tanlanadi. X kunlar. "+" belgisi bilan argument teskari natijaga olib keladi - oxirgi marta foydalanilgan fayllar tanlanadi. X kunlar.

Quyidagi buyruq oxirgi besh kun ichida yangilanmagan barcha fayllarni topish imkonini beradi:

$ find / -mtime -5 -chop etish

Quyida katalogni qidiradigan buyruq berilgan /var/adm oxirgi uch kun ichida yangilangan fayllar:

$ topish /var/adm -mtime +3 -chop etish

2.1.7. - yangi variant

Agar siz ikkita ko'rsatilgan faylni yangilash oralig'ida foydalanilgan fayllarni topishingiz kerak bo'lsa, -newer opsiyasidan foydalaning. Uni qo'llashning umumiy shakli quyidagicha:

Yangiroq eski_fayl! -yangiroq yangi_fayl

Imzo ' ! ‘ mantiqiy inkor operatori. Buning ma'nosi: yangiroq fayllarni toping eski_fayl, lekin undan kattaroq yangi_fayl.

Aytaylik, bizda ikki kundan bir oz ko'proq vaqt oralig'ida yangilangan ikkita fayl bor:

Rwxr-xr-x 1 ildiz ildiz 92 18 aprel 11:18 age.awk
-rwxrwxr-x 1 ildiz ildizi 1054 20 aprel 19:37 belts.awk

Keyinchalik yangilangan barcha fayllarni topish uchun age.awk, lekin undan oldinroq belts.awk, quyidagi buyruqni bajaring (-exec opsiyasidan foydalanish quyida tavsiflangan):

$toping. - new age.awk! -newer belts.awk -exec Is -1 () ;
-rwxrwxr-x 1 ildiz ildiz 62 18 aprel 11:32 ./who.awk
-rwxrwxr-x 1 ildiz ildiz 49 18 aprel 12:05 ./group.awk
-rw-r-r- 1 ildiz ildizi 201 20 aprel 19:30 ./grade2.txt
-rwxrwxr-x 1 ildiz ildizi 1054 20 aprel 19:37 ./belts.awk

Agar siz so'nggi ikki soat ichida yaratilgan fayllarni topishingiz kerak bo'lsa-chi, lekin sizda solishtirish uchun roppa-rosa ikki soat oldin yaratilgan faylingiz bo'lmasa? Bunday fayl yarating! Touch -t buyrug'i shu maqsadda mo'ljallangan bo'lib, u MMDChhmm (oy-kun-soat-daqiqalar) formatida berilgan vaqt belgisi bilan faylni yaratadi. Masalan:

$ touch -t 05042140 dstamp
$ls -1 dstamp
-rw-r-r- 1 dave admin 0 4 may 21:40 dstamp

Natijada yaratilish sanasi 4-may, yaratilish vaqti -21:40 bo'lgan fayl bo'ladi (agar shunday bo'lsa). joriy vaqt- 23:40). Endi siz oxirgi ikki soat ichida yangilangan barcha fayllarni topish uchun find buyrug'ini -newer opsiyasi bilan ishlatishingiz mumkin:

$toping. -yangi datamp -print

2.1.8. Variant -turi

OS UNIX Va Linux qo'llab-quvvatlash Har xil turlar fayllar. Fayllarni qidirish to'g'ri tur buyrug'i yordamida bajariladi, -type opsiyasi bilan toping. Masalan, katalogdagi barcha pastki kataloglarni topish uchun /va boshqalar ushbu buyruqdan foydalaning:

$ find /etc -turi d -chop etish

Kataloglarni emas, balki barcha fayllarni ro'yxatga olish uchun quyidagi buyruqni bajaring:

$toping. ! -d turi -chop etish

Quyida katalogdagi barcha ramziy havolalarni topish uchun mo'ljallangan buyruq berilgan /va boshqalar.

$ find /etc -turi 1 -chop etish

2.1.9. Variant -hajmi

Qidiruv jarayonida fayl hajmi -size opsiyasi yordamida aniqlanadi N, Qayerda N- 512 bayt bloklarda fayl hajmi. Mumkin bo'lgan dalillar quyidagi ma'nolarga ega: +N- hajmi belgilanganidan kattaroq fayllarni qidirish; -N- belgilanganidan kamroq; N- berilganga teng. Agar argument qo'shimcha ravishda belgini aniqlasa Bilan, keyin o'lcham bloklarda emas, balki baytlarda ko'rsatilgan deb hisoblanadi va agar belgi bo'lsa k- kilobaytlarda. Hajmi 1 MB dan oshadigan fayllarni qidirish uchun buyruqdan foydalaning

$toping. -aize -flOOOk -chop etish

Quyidagi buyruq katalogni qidiradi /home/apache hajmi aniq 100 bayt bo'lgan fayllar:

$ find /home/apache -sixe 100s -chop etish

Quyidagi buyruq sizga 10 blokdan (5120 bayt) katta fayllarni qidirish imkonini beradi:

$toping. -hajmi +10 -chop etish

2.1.10. Variant Variant -chuqurlik

-depth opsiyasi qidiruvni shunday tashkil qilish imkonini beradiki, joriy katalogning barcha fayllari (va uning barcha pastki kataloglari) avval tekshiriladi va faqat oxirida - katalogning o'zi kiritiladi. Ushbu parametr cpio yoki tar buyrug'i yordamida lentada arxivlanadigan fayllar ro'yxatini yaratishda keng qo'llaniladi, chunki bu holda katalog tasviri birinchi navbatda lentaga yoziladi va shundan keyingina unga kirish huquqi o'rnatiladi. Bu foydalanuvchiga yozishga ruxsati bo'lmagan kataloglarni arxivlash imkonini beradi.
Quyidagi buyruq joriy katalogning barcha fayllari va pastki kataloglarini ko'rsatadi:

$toping. -nom "*" -chop etish -o -nom ".*" -chop etish -chuqurlik

Uning ishining natijalari quyidagicha ko'rinishi mumkin:

./.Xdefaults ./.bash_logout ./.bash_profile ./.bashrc ./.bash_nistory ./file ./Dir/filel ./Dir/file2 ./Dir/file3 ./Dir/Subdir/file4 ./Dir/Sub ./dir

2.1.11. - o'rnatish opsiyasi

Boshqa o'rnatilgan fayllar bundan mustasno, faqat joriy fayl tizimidagi fayllarni qidiradi fayl tizimlari, find buyrug'iga -mount opsiyasini taqdim etadi. Quyidagi misol kengaytmali barcha fayllarni qidiradi .xc joriy disk bo'limida:

$ find / -name "*.XC" -mount -print

2.1.12. cpio buyrug'i yordamida fayllarni qidirish va keyin ularni arxivlash

cpio buyrug'i asosan fayllarni lentaga yozish va o'qish uchun ishlatiladi. Ko'pincha u find buyrug'i bilan birgalikda ishlatiladi, undan trubka orqali fayllar ro'yxatini oladi.

Katalog tarkibini lentaga qanday yozib olish mumkin /va boshqalar, /uy Va /ilovalar:

$cd/
$ find etc home appa -depth -print | cpio -ov > dev/rmtO

Variant -O cpio buyrug'i fayllarni lentaga yozish rejimini belgilaydi. Variant -v (batafsil- og'zaki rejim) - cpio buyrug'iga ishlov berilayotgan har bir fayl haqida xabar berish uchun ko'rsatma.

E'tibor bering, katalog nomlarida bosh "/" belgisi mavjud emas. Shu tarzda, arxivlangan kataloglarning nisbiy yo'l nomlari o'rnatiladi, ular keyinchalik arxivdan fayllarni o'qishda ularni istalgan qismda qayta yaratishga imkon beradi. operatsion tizim, va faqat ildiz katalogida emas.

2.1.13. Variantlar -exec va -ok

Aytaylik, siz topdingiz kerakli fayllar va ularga nisbatan muayyan harakatlar qilishni xohlaydi. Bunday holda, sizga -exec opsiyasi kerak bo'ladi (ba'zi tizimlar faqat ls yoki ls -1 buyruqlarini -exec opsiyasi bilan bajarishga ruxsat beradi). Ko'pgina foydalanuvchilar o'chirish uchun eski fayllarni topish uchun -exec opsiyasidan foydalanadilar. Find buyrug'i olib tashlamoqchi bo'lgan fayllarni topishiga ishonch hosil qilish uchun rm o'rniga ls ni ishga tushirishni tavsiya qilaman.

-exec opsiyasidan keyin bajariladigan buyruqni belgilang, undan keyin jingalak qavslar, bo'sh joy, teskari chiziq va nihoyat nuqta-vergul qo'yiladi. Keling, bir misolni ko'rib chiqaylik:

$toping. -turi f -exec Xa -1 () ;
-rwxr-xr-x 10 ildiz g'ildiragi 1222 4 yanvar 1993 yil ./sbin/C80
-rwxr-xr-x 10 ildiz g'ildiragi 1222 4 yanvar 1993 yil ./sbin/Oddiy
-rwxr-xr-x 10 ildiz g'ildiragi 1222, 4 yanvar 1993 ./sbin/Rewid

Bu oddiy fayllarni qidiradi, ularning ro'yxati ls -1 buyrug'i yordamida ekranda ko'rsatiladi.

Katalogda yangilanmagan fayllarni topish uchun /jurnallar oxirgi besh kun ichida va ularni olib tashlang, quyidagi buyruqni bajaring:

$ find /log" -turi f -mtime +5 -exec rm () ;

Fayllarni ko'chirish yoki o'chirishda ehtiyot bo'lishingiz kerak. mv va rm buyruqlarini bajarish imkonini beruvchi -ok opsiyasidan foydalaning xavfsiz rejim(keyingi faylni qayta ishlashdan oldin, tasdiqlash so'rovi beriladi). Quyidagi misolda find buyrug'i kengaytmali fayllarni topadi .log, va agar fayl besh kundan ko'proq vaqt oldin yaratilgan bo'lsa, u uni o'chiradi, lekin avval ushbu amalni tasdiqlashingizni so'raydi:

$toping. -name "*.LOG" -mtime +5 -ok rm () ;
< rm … ./nets.LOG >? da

Faylni oʻchirish uchun kiriting da, va bu harakatni oldini olish uchun - n.

2.1.14. Find buyrug'idan foydalanishning qo'shimcha misollari

Keling, find buyrug'idan foydalanishni ko'rsatadigan yana bir nechta misollarni ko'rib chiqaylik. Quyida boshlang'ich katalogingizdagi barcha fayllarni qanday topish mumkin:

$ find ~ -chop etish

Bit o'rnatilgan barcha fayllarni toping SUID, quyidagi buyruq ruxsat beradi:

$toping. -turi f -perm +4000 -chop etish

Bo'sh fayllar ro'yxatini olish uchun ushbu buyruqdan foydalaning:

$ find / -turi f -size 0 -exec Is -1 () ;

Mening tizimlarimdan biri har kuni tizim audit jurnalini yaratadi. Jurnal fayl nomiga raqam qo'shiladi, bu sizga qaysi fayl keyinroq yaratilganligini va qaysi biri avval yaratilganligini darhol aniqlash imkonini beradi. Masalan, fayl versiyalari admin.log ketma-ket raqamlangan: admin.log.001, admin.log.002 va hokazo. Quyida barcha fayllarni olib tashlaydigan find buyrug'i mavjud admin.log etti kundan ko'proq vaqt oldin yaratilgan:

$ find /logs -name ‘admin.log.1 -atima +7 exec rm () ;

2.2. xargs jamoasi

-exec opsiyasi bilan find buyrug'i barcha topilgan fayllarni belgilangan buyruqqa o'tkazadi, ular bir vaqtning o'zida qayta ishlanadi. Afsuski, ba'zi tizimlarda buyruq satrining uzunligi cheklangan, shuning uchun ko'p sonli fayllarni qayta ishlashda siz odatda o'qiladigan xato xabarini olishingiz mumkin: "Juda ko'p argumentlar"(juda ko'p argumentlar) yoki "Argumentlar juda uzun"(argumentlar ro'yxati juda katta). Bunday vaziyatda xargs buyrug'i yordamga keladi. U find buyrug'idan olingan fayllarni birdaniga emas, balki bo'laklarga bo'lib qayta ishlaydi.

Misolni ko'rib chiqing, bunda find buyrug'i tizimda mavjud bo'lgan barcha fayllar ro'yxatini qaytaradi va xargs buyrug'i har bir fayl turini tekshirib, ulardagi fayl buyrug'ini ishga tushiradi:

$ find / -type f -print I xarge.file
/etc/protocols: Inglizcha matn /etc/securetty: ASCII matn

Quyida echo buyrug'i faylga nomlari qo'yiladigan dump fayllarini qidirishni ko'rsatadigan misol keltirilgan. /tmp/core.log.

$ find / -nom yadrosi -chop etish | xarge echo > /tmp/core.log

Quyidagi misolda, katalogda /ilovalar/audit boshqa foydalanuvchilar to'liq kirish huquqiga ega bo'lgan barcha fayllarni qidiradi. chmod buyrug'i ular uchun yozish ruxsatini olib tashlaydi:

$ find /appe/audit -perm -7 -chop etish | xarge chmod o-w

Ro'yxatimizni yaxlitlash grep buyrug'i "so'zi" so'zini o'z ichiga olgan fayllarni qidiradigan misoldir. qurilma«:

$ topish / -turi f -chop etish | xarge grep "qurilma"

2.3. Xulosa

Find buyrug'i turli xil mezonlar yordamida turli xil fayllarni qidirish uchun ajoyib vositadir. -exec opsiyasi, shuningdek xargs buyrug'i tufayli topilgan fayllar deyarli har qanday tizim buyrug'i bilan qayta ishlanishi mumkin.

Agar siz tez-tez ishlasangiz buyruq qatori hech qanday grafik qobiq bo'lmagan kompyuter yoki serverda, ertami-kechmi siz fayllarni qidirish vazifasiga duch kelasiz. Yaxshiyamki, Linux allaqachon tizimda faylni topish imkonini beruvchi o'rnatilgan buyruqqa ega.

Bugun biz find buyrug'idan foydalanish haqida gaplashamiz - menga ishoning, bu kuchli va qulay vosita bilan qanday ishlashni o'rganishga arziydi.

Find buyrug'idan qanday foydalanish kerak

Oddiy qilib aytganda, find buyrug'ining asosiy sintaksisi quyidagicha:

/path parametrlari fayl nomini toping

Keling, jamoaning imkoniyatlarini tushunaylik

Faylni nomi bo'yicha qidiring

Birinchi parametr - bu yo'l. Agar fayl qayerda yashiringanligini bilmasangiz, yo'lni / bilan almashtiring - bu etarli. Biroq, butun diskni qidirish ancha vaqt talab qilishi mumkin va agar fayl qayerda joylashganligini bilsangiz, qidirishni boshlash uchun papkani belgilang (masalan, foydalanuvchining uy papkasida qidirish uchun ~).

Endi qidiruv parametrlariga o'tamiz. Faylni nomi bo'yicha qidirishning ikkita varianti mavjud:

  • nom - katta-kichik harflarga sezgir fayl nomini qidiring
  • iname - katta-kichik harflarga sezgir bo'lmagan fayl nomini qidiring

Shuni esda tutish kerakki, Linuxda fayl nomi katta ahamiyatga ega va agar siz, masalan, Ubuntu.txt faylini topishingiz kerak bo'lsa, unda quyidagi buyruq hech qanday natija bermaydi:

toping / -name ubuntu.txt

Lekin siz iname buyrug'idan foydalanishingiz va katta-kichik harflarni hisobga olmaydigan qidiruvni amalga oshirishingiz mumkin:

/ -iname ubuntu.txt ni toping

Turi bo'yicha qidirish

Find buyrug'i faqat fayllardan ko'proq narsani qidirishga imkon beradi. Bu erda qidiruv qo'llab-quvvatlaydigan tutqichlarning turlari mavjud:

  • f - oddiy fayl
  • d - katalog
  • l - ramziy havola
  • c - belgilar qurilmasi
  • b - blokirovka qiluvchi qurilma

Masalan, joriy foydalanuvchining uy katalogidagi "config" bilan boshlanadigan barcha kataloglarni topish uchun quyidagi buyruqni bajaring:

~ -turi d -nom konfiguratsiyasini toping*

Qidiruv natijalarini faylga chiqarish

Buyruqning natijasini faylga chiqarishning qulay funksiyasi, agar qidiruv natijalari ko'p bo'lsa yoki ular bilan keyinroq ishlash zarurati tug'ilsa, juda foydali bo'ladi. Masalan, barcha topilganlar ro'yxatini saqlash uchun konfiguratsiya fayllari faylga conf_search, quyidagi buyruqni bajaring:

/etc -turi f -name “*.conf” > conf_search toping

Fayllarni hajmi bo'yicha qidiring

Diskda bo'sh joy tugasa va u qayerga ketganini aniqlash kerak bo'lganda, bu juda foydali variant. Masalan, 1000 MB dan katta fayllarni topish uchun quyidagi buyruqni bajaring:

Toping / -siz +1000M

Quyidagi o'lchamdagi qisqartmalardan foydalanish mumkin:

  • c - baytlar
  • k - kilobayt
  • M - megabayt
  • G - gigabayt
  • b - 512 baytdan iborat bloklar

Bu kuchli buyruqni ishlatishning bir necha yo'li. Buyruqni ishga tushirish orqali qo'shimcha usullarni qo'llanmada topish mumkin