আপনার লিনাক্স ফাইল সার্চিং টুলবক্সের আরেকটি টুল – locate কমান্ড। এখানে এর ব্যবহার বলা হয়েছে।
locate কমান্ডটি কেবল ফাইল এবং ফোল্ডার তাদের নাম দিয়ে খুঁজে বের করার জন্য তৈরি। এটি ব্যবহার করা সহজ এবং প্যাটার্ন ব্যবহার করে ফাইল সার্চ করতে পারে। এটি সহায়ক যদি আপনি নির্দিষ্ট টাইপ/ফাইল এক্সটেনশনের ফাইল খুঁজছেন।
locate ইনস্টল করা
locate আপনার সিস্টেমে ডিফল্টভাবে ইনস্টল করা থাকতে পারে না।
Debian/Ubuntu-ভিত্তিক ডিস্ট্রিবিউশনে ইনস্টল করতে, রান করুন:
sudo apt install mlocate
অথবা Redhat/CentOS/Fedora-এ:
sudo yum install mlocate
Linux locate কমান্ড সিনট্যাক্স
locate কমান্ডটি দ্রুত। কারণ এটি সরাসরি ফাইল সিস্টেম সার্চ না করে, একটি ডেটাবেস সার্চ করে যা পিরিয়ডিক্যালি আপডেট হয়। এতে সার্চ অনেক দ্রুত হয়।
এটি যাহোক, এর মানে হলো যদি ফাইলটি মুভ করা হয়, রিনেম করা হয়, বা রিমুভ করা হয় ডেটাবেস শেষবার রিফ্রেশ হওয়ার পর, তবে সেটি রেজাল্টে এখনও দেখাবে।
ডিফল্টভাবে, locate ফাইল খুঁজতে যে ডেটাবেস ব্যবহার করে সেটি ডেইলি আপডেট হওয়ার জন্য শিডিউল করা থাকে, কিন্তু ম্যানুয়াল আপডেট ট্রিগার করা সম্ভব যদি আপনি আপনার ফাইলগুলো রি-অ্যারেঞ্জ করেছেন এবং আপ-টু-ডেট রেকর্ডে সার্চ করতে চান।
ডেটাবেস আপডেট করা
locate ফাইল খুঁজতে যে ডেটাবেস ব্যবহার করে সেটি আপডেট করতে, রান করুন:
sudo updatedb
ফাইল লোকেট করা
locate ব্যবহার করে ফাইল খুঁজার সিনট্যাক্স নিচে:
locate OPTIONS PATTERN
মনে রাখবেন:
- OPTIONS অপশনাল এবং নিচের টেবিল থেকে সরবরাহ করা যাবে locate কমান্ডের ডিফল্ট আচরণ পরিবর্তন করতে
- PATTERN হলো যে প্যাটার্ন ফাইল নামগুলোকে ম্যাচ করতে হবে সার্চের জন্য ম্যাচ ধরা যেতে
- ম্যাচিং ফাইলগুলোর রেজাল্ট সম্পূর্ণ ফাইলসিস্টেম- থেকে হবে ডিফল্টভাবে – শুধু বর্তমান ওয়ার্কিং ডিরেক্টরি থেকে নয়
- যদি locate কমান্ড ব্যবহারের জন্য কোনো ডেটাবেস জেনারেট করা না থাকে, তবে আপনাকে একটি জেনারেট করার জন্য প্রম্পট করা হতে পারে
- locate কমান্ড 0 স্ট্যাটাস কোড রিটার্ন করবে যদি ম্যাচ করা ফাইল পাওয়া যায় এবং 1 যদি কোনো ফাইল না পাওয়া যায় বা এরর হয়।
কমান্ড অপশন
অফিশিয়াল ডক্স থেকে সরাসরি locate কমান্ডের কিছু সাধারণ অপশন নিচে:
| অপশন | বর্ণনা |
|---|---|
| -b | স্পেসিফাইড প্যাটার্নের বিপরীতে শুধু বেস নাম ম্যাচ করুন। |
| -c | স্ট্যান্ডার্ড আউটপুটে ফাইল নাম লিখার বদলে, শুধু ম্যাচিং এন্ট্রির সংখ্যা লিখুন। |
| -e | শুধু সেই এন্ট্রিগুলো প্রিন্ট করুন যা locate রান করার সময় ফাইল সিস্টেমে বিদ্যমান। |
| -i | প্যাটার্ন ম্যাচ করার সময় কেস ডিস্টিন্কশন উপেক্ষা করুন। |
| -l | LIMIT এন্ট্রি খুঁজে পাওয়ার পর সফলভাবে এক্সিট করুন। যদি –count অপশন স্পেসিফাই করা থাকে, ফলাফল কাউন্টটিও LIMIT-এ লিমিটেড হবে। |
| -P | ফাইল উপস্থিতি চেক করার সময় (যদি –existing অপশন স্পেসিফাই করা থাকে), ট্রেইলিং সিমবলিক লিঙ্ক ফলো করবেন না। এতে ব্রোকেন সিমবলিক লিঙ্ক অন্যান্য ফাইল-এর মত রিপোর্ট হবে। |
| -q | ডেটাবেস পড়া এবং প্রসেস করার সময় সম্মুখীন এরর সম্পর্কে কোনো মেসেজ লিখবেন না। |
| -r | বেসিক রেগেক্সপ REGEXP-এ সার্চ করুন। এই অপশন ব্যবহার করলে কোনো PATTERNs অনুমোদিত নয়, কিন্তু এই অপশনটি একাধিকবার স্পেসিফাই করা যাবে। |
| –regex | সকল PATTERNs কে এক্সটেনডেড রেগেক্সপ হিসেবে ইন্টারপ্রেট করুন। |
অপশন들의 পূর্ণ তালিকা দেখতে, locate কমান্ডের ইউজার ম্যানুয়াল রান করে দেখতে পারেন:
man locate
locate কমান্ড উদাহরণ
locate ফাংশনের সবচেয়ে বেসিক ব্যবহার হলো একটি দেয়া নামের সাথে ম্যাচ করার ফাইল খুঁজে বের করা:
locate filename
ফাইল সিস্টেমে প্রতিটি ম্যাচিং ফাইলের ফাইল পাথের একটি তালিকা রিটার্ন হবে।
উপরে ব্যাখ্যা করা হয়েছে, locate ফাইল সিস্টেমটি সরাসরি সার্চ করে না – বরং একটি ডেটাবেস সার্চ করে যা ফাইল সিস্টেমকে ইনডেক্স করে এবং পিরিয়ডিক্যালি আপডেট হয়। এতে জিনিসগুলো দ্রুত থাকে কিন্তু সমস্যা হতে পারে যদি আপনি সম্প্রতি এক কুড়া ফাইল মুভ করে থাকেন এবং ডেটাবেস এখনও আপডেট হয়নি।
-e অপশন locate-কে বাধ্য করবে ফাইল সিস্টেমে ফাইলটি এখনও আছে কিনা চেক করার জন্য রেজাল্ট লিস্টে যোগ করার আগে:
locate -e filename
এটি নতুন তৈরি বা মুভ করা ফাইল রেজাল্টে না থাকার (পুরানো লোকেশনে দেখানোর) সমস্যা সমাধান করে না কিন্তু রিমুভ করা ফাইল রেজাল্টে দেখানোর সমস্যা সমাধান করে।
প্যাটার্ন সরবরাহ করা যাবে যাতে আপনি সহজে ফাইল এক্সটেনশন দিয়ে সার্চ করতে পারেন:
locate *.mp3
উপরোক্ত উদাহরণ ডেটাবেসে পাওয়া যাওয়া সকল mp3 ফাইল রিটার্ন করবে।
locate কমান্ড ডিফল্টভাবে কেস-সেনসিটিভ – এটি -i অপশন দিয়ে ওভাররাইড করা যাবে:
locate -i FILENAME
আপনি ম্যাচিং ফাইল সংখ্যা কাউন্ট করতে পারেন -c অপশন ব্যবহার করে:
locate -c filename