دستور locate، با کمک یک دیتابیس از قبل از ایجاد شده، امکان جستجوی افلاین و سریع فایلها و پوشه ها را ممکن می سازد.
دیتابیس مربوط به این دستور، به صورت روزانه بروزرسانی خواهد شد و جاب مربوط به ان را می توان در مسیر /etc/cron.daily مشاهده کرد:
[root@ol7 cron.daily]# ls -l mlocate
-rwx——. 1 root root 208 Aug 30 2016 mlocate
برای بروزرسانی دستی این دیتابیس، می توان از دستور updated استفاده نمود.
ساختار کلی دستور locate به شکل زیر می باشد:
locate [options] search_string
استفاده از این دستور، نسبتا اسان می باشد که با ارئه چند مثال، با بعضی از سوییچهای این دستور آشنا خواهیم شد.
مثال 1: تمامی فایلها و پوشه هایی که در قسمتی از نام آنها، عبارت myExam وجود دارد را نمایش دهید:
در ابتدا فایل و پوشه ایی را برای روشن تر شدن مطلب ایجاد می کنیم:
[root@ol7 ~]# mkdir /home/myExam2
[root@ol7 ~]# touch /var/myExam1
دستور locate را برای جستجو اجرا می کنیم:
[root@ol7 ~]# locate myExam
همانطور که می بینید، به دلیل عدم بروزرسانی دیتابیس، این دستور خروجی ای را در پی ندارد. پس بصورت دستی دیتابیس را بروزرسانی می کنیم:
[root@ol7 ~]# updatedb
با اجرای مجدد دستور locate، خروجی مطلوب، نمایش داده خواهد شد:
[root@ol7 ~]# locate myExam
/home/myExam2
/var/myExam1
مثال 2: برای اجرای دستور locate بدون احتساب بزرگی و کوچکی حروف، می توانیم از سوییچ i استفاده کنیم:
[root@ol7 ~]# locate myexam
[root@ol7 ~]# locate -i myexam
/home/myExam2
/var/myExam1
مثال 3: با کمک سوییچ e در دستور locate، وجود یا عدم وجود فایل(یا پوشه)، همراه با اجرای دستور، مورد بررسی قرار می گیرد و تنها به وجود آن نام در دیتابیس اکتفا نخواهد شد:
[root@ol7 ~]# rm -rf /home/myExam2
[root@ol7 ~]# rm -rf /var/myExam1
[root@ol7 ~]# locate myExam
/home/myExam2
/var/myExam1
[root@ol7 ~]# locate -e myExam
[root@ol7 ~]#
مثال 4: دستور locate به صورت خودکار، wildchard ستاره(*) را به ابتدا و انتهای عبارت اضافه می کند برای مثال، عبارت myExam را به *myExam* تبدیل می کند حال اگر بخواهیم دقیقا عبارت myExam جستجو شود، می توانیم از سوییچ r و با فرمت زیر جستجو را انجام دهیم:
[root@ol7 ~]# touch /usr/myExam
[root@ol7 ~]# updatedb
[root@ol7 ~]# locate myExam
/home/myExam2
/usr/myExam
/var/myExam1
[root@ol7 ~]# locate -r /myExam$
/usr/myExam
البته این کار با کمک سوییچ b هم امکان پذیر است:
[root@ol7 ~]# locate -b ‘\myExam’
/usr/myExam
مثال 5: برای تعیین تعداد یافته های دستور locate، می توان از سوییچ c استفاده کرد:
[root@ol7 ~]# locate -c myExam
2