এই সংক্ষিপ্ত কিন্তু বিস্তারিত গাইড আপনাকে লিনাক্সে "find" কমান্ড ব্যবহার শুরু করতে সাহায্য করবে এবং হেল্পফুল রিয়েল-ওয়ার্ল্ড উদাহরণ দেবে।
হার্ড ড্রাইভ গত কয়েক বছরে আরও সস্তা হওয়ার সাথে সাথে আমরা আমাদের কম্পিউটারে অনেক গিগাবাইট বা কখনও কখনও টেরাবাইট ডেটা রাখতে অভ্যস্ত হয়েছি। এইটিই যখন আমাদের কম্পিউটারে ইনফরমেশন খুঁজে বের করা গুরুত্বপূর্ণ হয়। লিনাক্সের একটি খুব হ্যান্ডি কমান্ড লাইন টুল আছে খুব যথার্থভাবে "find" নামে ডাকা যা আপনাকে ঠিক এই কাজে সাহায্য করবে। আমি "find" কমান্ডের কিছু বেসিক ফিচার আপনাদের সাথে শেয়ার করব শুরু করতে। আমি কাফি নিশ্চিত যে আপনি এটিকে খুব উপকারী পাবেন।
"find" ব্যবহার করার সিনট্যাক্স এভাবে গঠিত:
# find [where to search] [criteria]
একটি সিম্পল উদাহরণ তার ব্যবহারের:
# find -name “*.txt”
./Documents/articles/doctor_dolittle.txt
./Documents/articles/Installing_Redhat_Linux.txt
./Desktop/todo_list.txt
উপরের কমান্ডটি কারেন্ট ডিরেক্টরি এবং এর সকল সাবডিরেক্টরি সার্চ করবে ".txt" এক্সটেনশন वाले ফাইলগুলো জন্য। একটা জিনিস নোট করুন যে find-র সকল প্যারামিটার সম্পূর্ণ অপশনাল। এর মানে আপনি যদি শুধু "find" কমান্ড লিখে এন্টার কী চাপেন তবও আপনি একটি রিজাল্ট পাবেন — কারেন্ট ডিরেক্টরি এবং সাবডিরেক্টরির সকল ফাইলগুলোর তালিকা। ট্রাই করুন।
আপনি যদি একাধিক ডিরেক্টরি সার্চ করতে চান টেক্সট ফাইলের জন্য আপনি ডিরেক্টরি গুলো একে পর এক লিস্ট করতে পারেন:
# find /home/hobbes/ /home/calvin/ -name “*.txt”
/home/calvin/Documents/articles/doctor_dolittle.txt
/home/calvin/Desktop/todo_list.txt
/home/hobbes/Desktop/articles.txt
/home/hobbes/data_logging.txt
আপনি কিছু এরর পেতে পারেন আপনি কিছু সার্চ রান করলে। এগুলো অধিকাংশ সময় পারমিশন না থাকার সাথে সম্পর্কিত। আউটপুট অনেক ক্লিনার করার একটি নাইস ট্রিক হচ্ছে এররগুলোকে "/dev/null"-এ পাঠানো:
find /home/hobbes/ /home/calvin/ -name “*.txt” 2>/dev/null
আপনি যে আরেকটি সমস্যায় পড়তে পারেন সেটি হচ্ছে ডিফল্টভাবে এই সার্চগুলো কেস সেনসিটিভ। তাই "picasso" সার্চ করলে "Picasso" রিজাল্ট দেবে না। আপনি এটিকে এড়িয়ে যেতে পারেন "-iname" অপশন ব্যবহার করে:
# find /home/calvin/ -iname “picasso”
./Documents/images/picasso.png
./Documents/articles/The_artist_Picasso.doc
"find" কমান্ডের জন্য অনেক কুল "হ্যাকস" আছে। এখানে কয়েকটি। গত ৪৫ মিনিটে যে ফাইলগুলো মডিফাইড হয়েছে সেগুলো খুঁজতে আপনি টাইম-ভিত্তিক সার্চ করতে পারেন:
# find /home/calvin/ -mmin -45
./hello.txt
./artwork.jpg
সাদৃশ্যভাবে আপনি ১৫ থেকে ২৫ মিনিট আগে মডিফাইড ফাইলগুলো সার্চ করতে পারেন:
# find -mmin +15 -mmin -25
আপনি সাবডিরেক্টরিতে "find" কত গভীরে যাবে সেটি কন্ট্রোল করতে পারেন। নিচের কমান্ডটি:
# find /home/calvin/ -maxdepth 2 -name “*.txt”
স্পেসিফাইড ডিরেক্টরির শুধু উপরের দুই লেভেলে যাবে এবং ".txt" ফাইল এক্সটেনশন والے ফাইলগুলো খুঁজবে। অপশনালি আপনি "find"-কে বলতে পারেন শুধু দুই লেভেল নিচে সার্চ করতে:
# find /home/calvin/ -mindepth 2 -name “*.txt”
./artexpo.txt
./Documents/project.txt
বেশিরب কমান্ডের মত আপনি আউটপুটকে একটি ফাইলে অ্যাপেন্ড করতে পারেন। তাই আপনি যদি একটি সার্চ লগ করতে চান, আপনি নিচের কাজ করতে পারেন:
# find /home/calvin/ -name “*.txt” > /tmp/search.log
"find" কমান্ড অত্যন্ত উপকারী হতে পারে একবার আপনি এর সাথে হ্যাং হয়ে যাওয়ার পর। এত навероят একটি বই লেখা যায় এতের ওপর। আমি আপনাদের সাথে যা শেয়ার করলাম সেটি শুধু সম্ভাবনাদের একটু স্বাদ। find ম্যানপেজ দেখুন "find"-র অন্যান্য ফিচারগুলোর পয়েন্টার জন্য। অথবা আরও দূরে যান "find and replace"-এর সাথে।