
دستور locate اطلاعات رو از روی دیتابیسی که با updatedb اماده سازی میشه میخواند و بعد با توجه به کلمه ای که شما به اون داده اید گزینه های سازگار رو در خروجی خود مینویسد
برای به روز کردن دیتابیس خود از دستور زیر استفاده کنین
برای این کار به کاربر روت احتیاج هست
نکته :اگه فایل یا هر چیز جدید دیگه ای ساختین بعدش دستور زیر رو بزنین تا به دیتابیس اضافه بشه چون بروز اوریه دیتا بیس خیلی سریع نیست .
sudo updatedb
برای پیدا کردن تمام فایلاها و دایرکتوریهایی که کلمه screenshot رو دارن دستور به این شکل میشه
locate Screenshot
با زدن این دستور تمام فایلاییو دایرکتوری که کلمه Screenshot در اسمشون باشه به شما نشون داده میشه که البته محدود به یک دایرکتوری خاص هم نمیشه و تمام دایرکتوری های موجود در درایوی که لینوکستون رو نصب کردین شامل میشه .
اگه خاستین دنبال یک چیزی محدود به یک دایرکتوری بگردین میتونین به این صورت دستورو بزنین
مثلا من در اینجا دنبال یک فایل در داخل /home/alieblice/Documents میگردم :
alieblice@alieblice-desktop:/$ locate firefox |grep /home/alieblice/Documents
/home/alieblice/Documents/firefox-4.0.tar.bz2
alieblice@alieblice-desktop:/$
اگه دستور locate -i firefox رو بزنین میبینین که چه همه firefox دارین
توضیح دستور بالا :
i- برای case-insensitive یعنی حساس نبودن به بزرگی و کوچکی استفاده میشه
| ((\+shift)) : میگه که خروجی دستور قبلی بشه ورودی دستور جدید که دستور بلافاصله بعد از | میاد ((پایپ pipe یا لوله میخوننش ))
grep : تمام خطهایی که کلمه ی ورودی رو داره برای ما جدا میکنه که کلمه ی ورودی در اینجا /home/alieblice/Documents بود .
جستوجو بر اساس اسم دقیق داده شده
برای ای کار دستور به شکل زیر میشه
locate -b '\NAME'
اینجوری فقط دایرکتوری یا فلدر هایی که اسمشون دقیقا NAME هست نشون داده میشه
alieblice@alieblice-desktop:/$ locate -b '\Oggy'
/home/alieblice/Videos/Oggy
alieblice@alieblice-desktop:/$
alieblice@alieblice-desktop:/$
alieblice@alieblice-desktop:/$ locate Oggy
/home/alieblice/Documents/Oggy.003.htm
/home/alieblice/Downloads/Oggy.003.htm
/home/alieblice/Videos/Oggy
/home/alieblice/Videos/Oggy.002.avi
/home/alieblice/Videos/Oggy.003.avi
alieblice@alieblice-desktop:/$
لیست کردن تمام دایرکتوری ها و ساب دایرکتوری
برای این کار بعد از دستور locate ادرس دایرکتوری رو بدین
alieblice@alieblice-desktop:/$ locate /home/alieblice/Videos
/home/alieblice/Videos
/home/alieblice/Videos/Oggy.001.avi
/home/alieblice/Videos/Oggy.002.avi
/home/alieblice/Videos/Oggy.003.avi
/home/alieblice/Videos/test
/home/alieblice/Videos/test/test2
alieblice@alieblice-desktop:/$
لیست کردن بر اساس فرمت داده شده
locate "*.png" -q
-q برای نشون ندادن ارور هست
اگر خاستین تعداد خاصی یعنی مثلا 3 تا خروجی بیشتر نداشته یاشه از n- استفاده کنین
alieblice@alieblice-desktop:/$ locate -n 3 "*.png"
/etc/alternatives/start-here-16.png
/etc/alternatives/start-here-22.png
/etc/alternatives/start-here-24.png
alieblice@alieblice-desktop:/$
اگه مقدار خروجی خیلی زیاد بود میتونین از less یا more استفاده کنین
locate *.png |less
locate *.png |more
نکته :
دیتابیس locate در ادرس زیر هست
/var/lib/mlocate/mlocate.db
که برای دیدن محتویات داخلش از این دستور میتونین استفاده کنین
sudo strings /var/lib/mlocate/mlocate.db |less