دستور locate در لینوکس

دستور locate، با کمک یک دیتابیس از قبل از ایجاد شده، امکان جستجوی افلاین و سریع فایلها و پوشه ها را ممکن می سازد.

 دیتابیس مربوط به این دستور، به صورت روزانه بروزرسانی خواهد شد و جاب مربوط به ان را می توان در مسیر /etc/cron.daily مشاهده کرد:

[[email protected] cron.daily]# ls -l mlocate

-rwx——. 1 root root 208 Aug 30  2016 mlocate

برای بروزرسانی دستی این دیتابیس، می توان از دستور updated استفاده نمود.

ساختار کلی دستور locate به شکل زیر می باشد:

locate [options] search_string

استفاده از این دستور، نسبتا اسان می باشد که با ارئه چند مثال، با بعضی از سوییچهای این دستور آشنا خواهیم شد.

مثال 1: تمامی فایلها و پوشه هایی که در قسمتی از نام آنها، عبارت myExam وجود دارد را نمایش دهید:

در ابتدا فایل و پوشه ایی را برای روشن تر شدن مطلب ایجاد می کنیم:

[[email protected] ~]#  mkdir /home/myExam2

[[email protected] ~]# touch /var/myExam1

دستور locate را برای جستجو اجرا می کنیم:

[[email protected] ~]# locate myExam

همانطور که می بینید، به دلیل عدم بروزرسانی دیتابیس، این دستور خروجی ای را در پی ندارد. پس بصورت دستی دیتابیس را بروزرسانی می کنیم:

[[email protected] ~]# updatedb

با اجرای مجدد دستور locate، خروجی مطلوب، نمایش داده خواهد شد:

[[email protected] ~]# locate myExam

/home/myExam2

/var/myExam1

مثال 2: برای اجرای دستور locate بدون احتساب بزرگی و کوچکی حروف، می توانیم از سوییچ i استفاده کنیم:

[[email protected] ~]# locate myexam

[[email protected] ~]# locate -i myexam

/home/myExam2

/var/myExam1

مثال 3: با کمک سوییچ e در دستور locate، وجود یا عدم وجود فایل(یا پوشه)، همراه با اجرای دستور، مورد بررسی قرار می گیرد و تنها به وجود آن نام در دیتابیس اکتفا نخواهد شد:

[[email protected] ~]# rm -rf /home/myExam2

[[email protected] ~]# rm -rf /var/myExam1

[[email protected] ~]# locate myExam

/home/myExam2

/var/myExam1

[[email protected] ~]# locate -e myExam

[[email protected] ~]#

مثال 4: دستور locate به صورت خودکار، wildchard ستاره(*) را به ابتدا و انتهای عبارت اضافه می کند برای مثال، عبارت myExam را به *myExam* تبدیل می کند حال اگر بخواهیم دقیقا عبارت myExam جستجو شود، می توانیم از سوییچ r و با فرمت زیر جستجو را انجام دهیم:

[[email protected] ~]# touch /usr/myExam

[[email protected] ~]# updatedb

[[email protected] ~]# locate myExam

/home/myExam2

/usr/myExam

/var/myExam1

[[email protected] ~]# locate -r /myExam$

/usr/myExam

البته این کار با کمک سوییچ b هم امکان پذیر است:

[[email protected] ~]# locate -b ‘myExam’

/usr/myExam

مثال 5: برای تعیین تعداد یافته های دستور locate، می توان از سوییچ c استفاده کرد:

[[email protected] ~]# locate -c myExam

2

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

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