راهنمای سریع locate ,find و grep – هر آنچه که درباره جستجوی فایلها در لینوکس باید بدانید

برای جستجو در نام و محتویات فایلها در لینوکس چند تا برنامه خوب داریم locate ,find و grep

find

این برنامه برای جستجوی فایل و دایرکتوری هست.

اول سوییچهای مهم این دستور رو میگم بعد چند تا مثال میزنم

  • name- عبارت جستجو
  • iname- عبارت جستجو بدون در نظر گرفتن کوچیک یا بزرگ بودن حروف
  • not- فایلها یا دایرکتوری هایی که حاوی عبارت وارد شده در سوییچ name- یا iname- نباشد لیست شود
  • type- فایل جستجو شود یا دایرکتوری به اینصورت که
    • f فایل
    • d دایرکتوری
  • size- فایلهایی که حجم مشخصی داشته باشند به اینصورت که
    • c برای بایت
    • k برای کیلو بایت
    • M برای مگابایت
    • G برای گیگابایت
  • a- جستجوی فایلهایی که زمانی access time آنها در محدوده زمانی مشخص شده باشد
  • m- جستجوی فایلهایی که زمانی modification time آنها یعنی زمانی که محتویات فایل تغییر کرده در محدوده زمانی مشخص شده باشد
  • c- جستجوی فایلهایی که زمانی change time آنها یعنی زمانی که متادیتای فایل تغییر کرده در محدوده زمانی مشخص شده باشد
  • user- کاربر صاحب فایل
  • perm- دسترسی فایل
  • exec- اجرای یک دستور روی نتایج جستجو، توجه کنید که اگه برای مثال بخواید دو تا دستور اجرا کنید دستور دوم زمانی اجرا میشه که دستور اول با موفقیت اجرا شده و خطا برنگردونده باشه

این دستور در دایرکتوری جاری فایلهایی که پسوند log دارند رو برمیگردونه

اگه بخواید کوچیک یا بزرگ بودن log مهم نباشه

اگه فایلهایی رو بخواید که کلمه پسوند log نداشته باشه

فایلهایی که بیشتر از 700 مگابایت باشن

توجه کنید که سوییچ name- و iname- برنامه find رجکس قبول نمیکنه ولی میتونید کارکترهای *, ? رو استفاده کنید

لیست فایلهایی که پسوند log یا txt دارند

سوییچهای جستجو بر اساس زمان access, modification و change مقادیر زیر رو قبول میکنن

  • time برای روز
  • min برای دقیقه

فایلهایی که زمان modification آنها کمتر از یک دقیقه باشد

فایلهایی که زمان modification آنها بیشتر از 1 روز باشد

فایلهایی که متعلق به کاربر pepsi هستند

فایلهای که دسترسی 644 دارند

جستجوی فایلهای لوگ و تجمیع اونها

جستجوی فایلهای زیپ و استخراج اونها

{} ادرس فایل هست که به صورت متغیر تو دستور میتونید استفاده کنید

آخر دستور باید \; بزارید

 

locate

این برنامه برای جستجوی فایل و دایرکتوری هست و بسیار سریع، دلیلش هم اینه که از دیتابیس استفاده میکنه
در دیتابیس این برنامه مسیر کامل فایلها و همچنین دایرکتوری ها ذخیره میشه
قبل از اجرا باید مطمئن بشید که دیتابیس به روز هست یا اینکه با دستور  updatedb  به روزش کنید

از locate فقط برای اینکه ببینید فایل یا دایرکتوری موجود هست یا نه استفاده کنید

سوییچهای مهم

  • b- تنها در basename یا عبارت موجود در انتهای هریک از ورودی های دیتابیس جستجو بشه
  • e- نمایش فایلها یا دایرکتوری هایی که هنوز وجود دارن، ممکن هست بعد از به روز شدن دیتابیس فایل یا دایرکتوری حذف شده باشه

توجه کنید که که برنامه locate رجکس قبول نمیکنه ولی در عبارت جستجو میتونید از کاراکتر * استفاده کنید، اگه از این کاراکتر استفاده نکنید * به ابتدا و انتهای عبارت مورد جستجو  اضافه میشه و به *query* تبدیل میشه

 

grep

این برنامه برای جستجوی در محتویات فایلها هست.

سوییچهای مهم

  • e- مشخص کردن ورودی، به صورت پیش فرض ورودی هر خط فایل هست نه کل فایل یکجا
  • r- دایرکتوری ها هم جستجو شود
  • i- کوچک و بزرگ بودن عبارت مشخص شده در e- مهم نباشد

در انتها باید مسیر جستجو رو مشخص کنید

اگه فقط یک ورودی دارید میتونید سوییچ e- رو ننویسید

توجه کنید که سوییچ e- برنامه grep رجکس قبول میکنه پس اگه یک عبارت خاص رو میخواید جستجو کنید فقط همون رو باید مشخص کنید و * نمیخواد

میتونید چند عبارت رو هم قرار بدید

لیست خطوطی که با ; تموم میشن

 

منابع

1 2

جستجو در کل مطالب سایت

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *