> For the complete documentation index, see [llms.txt](https://sh.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sh.howtocode.dev/3.0.0.part3intro/3.5.0.0.search/3.5.1.0.locate.md).

# Locate: নাম দিয়ে ফাইল সার্চ

`locate` বোধহয় সবচেয়ে সোজাসাপ্টা ফাইল সার্চিং কমান্ড। হাতে-কীবোর্ডে দেখা যাক। আমরা সেইসব ফাইল খুঁজবো যেগুলোর মধ্যে **zip** কথাটি আছে:

```
me@howtocode-pc:~$ locate zip
```

আপনি লম্বা একটা লিস্ট দেখতে পাবেন। এখন মনে করুন আপনি চাইছেন সেসব ফাইল খুঁজতে যার শুরু **zip** দিয়ে। যদি কোনো ফাইলের নামের শুরু **zip** দিয়ে হয় তবে তার শুরুতে অবশ্যই '/' থাকবে। অতএব আমরা লিখবো:

```
me@howtocode-pc:~$ locate /zip
```

কমান্ডের ফলাফলের একাংশ:

```
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipdetails
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/zipfs.jar
/usr/lib/python2.7/zipfile.py
/usr/lib/python2.7/zipfile.pyc
/usr/lib/python2.7/dist-packages/Pillow-2.3.0.egg-info/zip-safe
/usr/lib/python2.7/dist-packages/bzrlib/export/zip_exporter.py
/usr/lib/python2.7/dist-packages/bzrlib/export/zip_exporter.pyc
/usr/lib/python2.7/dist-packages/deluge/plugins/AutoAdd-1.04.egg/EGG-INFO/zip-safe
/usr/lib/python2.7/dist-packages/deluge/plugins/Blocklist-1.2.egg/EGG-INFO/zip-safe
/usr/lib/python2.7/dist-packages/deluge/plugins/Execute-1.2.egg/EGG-INFO/zip-safe
/usr/lib/python2.7/dist-packages/deluge/plugins/Extractor-0.2.egg/EGG-INFO/zip-safe
/usr/lib/python2.7/dist-packages/deluge/plugins/Label-0.2.egg/EGG-INFO/zip-safe
```

কিন্তু মনে করি আমরা আরো স্পেসিফিক জায়গায় খুঁজতে চাই। **bin** ফোল্ডারের মধ্যে **zip**। তাহলে লিখবো:

```
me@howtocode-pc:~$ locate bin/zip
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipdetails
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipnote
/usr/bin/zipsplit
```

এবার আমরা এর সম্ভব্য ফাইলগুলো পেয়েছি।

এবার আরেকটু জটিল কিছু চেষ্টা করি। আমরা এমন কিছু ফাইল খুঁজবো যার শুরু **zip** দিয়ে এবং কোনো না কোনোভাবে সেটি python3 এর সাথে সম্পর্কযুক্ত। এজন্য আমরা এভাবে কমান্ড করবো:

```
me@howtocode-pc:~$ locate /zip | grep python3
/usr/lib/python3/dist-packages/pip/commands/zip.py
/usr/lib/python3/dist-packages/pip/commands/__pycache__/zip.cpython-34.pyc
/usr/lib/python3/dist-packages/setuptools-3.3.egg-info/zip-safe
/usr/lib/python3.4/zipfile.py
/usr/lib/python3.4/__pycache__/zipfile.cpython-34.pyc
/usr/local/lib/python3.4/dist-packages/django/views/decorators/gzip.py
/usr/local/lib/python3.4/dist-packages/django/views/decorators/__pycache__/gzip.cpython-34.pyc
```

আমরা যা করেছি তা হলো প্রথম `locate /zip` দিয়ে **zip** দিয়ে শুরু হওয়া সব ফাইল পেয়েছি। তারপর পাইপ এর সাহায্যে `grep python3` যোগ করেছি। ফলে `grep` `locate` এর আউটপুটকে ফিল্টার করে শুধু যেসব ফাইলপাথে python3 কথাটি আছে সেগুলো দেখিয়েছে।

## updatedb

`locate` কমান্ডটি সার্চের জন্য একটি ডাটাবেজ ব্যবহার করে। এই ডাটাবেজ ক্রনজবের মাধ্যমে নির্দিষ্ট সময় পরপর আপডেট হয়। তাই খুব একটা আগে তৈরী হয়নি এমন ফাইল আপনি নাও পেতে পারেন `locate` কমান্ড দিয়ে। এক্ষেত্রে আপনি সুপারইউজার মোডে `updatedb` কমান্ড দিলে ডাটাবেজ আপডেটেড হবে।
