লিনাক্স find কমান্ড লিনাক্স সিস্টেমের সবচেয়ে গুরুত্বপূর্ণ এবং হ্যান্ডি কমান্ডের একটি। নাম অনুযায়ী, এটি আপনার লিনাক্স পিসিতে ফাইল খুঁজে বের করতে পারে প্রায় যেকোনো কন্ডিশন এবং ভেরিয়েবল আপনি সেট করলে। আপনি find কমান্ড ব্যবহার করে পারমিশন, ইউজার, গ্রুপ, ফাইল টাইপ, ডেট, সাইজ এবং অন্যান্য সম্ভাব্য ক্রাইটেরিয়া অনুযায়ী ফাইল খুঁজে বের করতে পারেন। এখানে আমরা দেখাচ্ছি কীভাবে লিনাক্সে find কমান্ড ব্যবহার করে ফাইল খুঁজে বের করবেন।
find কমান্ড অধিকাংশ লিনাক্স ডিস্ট্রোতে ডিফল্টলি উপলব্ধ থাকে, তাই আপনাকে এর জন্য আলাদা প্যাকেজ ইনস্টল করতে হবে না।
কারেন্ট ডিরেক্টরিতে নাম দিয়ে ফাইল খুঁজুন
ফাইল খুঁজে বের করার সবচেয়ে সুস্পষ্ট উপায় হচ্ছে নাম দিয়ে। কারেন্ট ডিরেক্টরিতে নাম দিয়ে ফাইল খুঁজতে, রান করুন:
find . -name photo.png
আপনি যদি বড় এবং ছোট হাতের অক্ষরই ধারণকারী নাম দিয়ে ফাইল খুঁজতে চান, তবে রান করুন:
find . -iname photo.png
আপনি যদি রুট ডিরেক্টরিতে ফাইল খুঁজতে চান, তবে আপনার সার্চের সাথে sudo প্রিফিক্স করুন, যা আপনাকে সকল প্রয়োজনীয় পারমিশন দেবে, এবং / সিম্বলও, যা লিনাক্সকে রুট ডিরেক্টরিতে সার্চ করতে বলে। চূড়ান্ত, -print এক্সপ্রেশন আপনার সার্চ রেজাল্টের ডিরেক্টরি ডিসপ্লে করে। আপনি যদি জিপ (gzip) খুঁজতেন, তবে আপনি টাইপ করতেন:
sudo find / -name gzip -print
নির্দিষ্ট ডিরেক্টরির অধীনে ফাইল খুঁজুন
আপনি যদি "/home" মত একটি নির্দিষ্ট ডিরেক্টরির অধীনে ফাইল খুঁজতে চান, তবে রান করুন:
find /home -name filename.txt
আপনি যদি "/home" ডিরেক্টরির অধীনে ".txt" এক্সটেনশনওয়ালা ফাইল খুঁজতে চান, তবে রান করুন:
find /home -name "*.txt"
"/home" এবং "/opt" মত একাধিক ডিরেক্টরির অধীনে "test.txt" নামের ফাইল খুঁজতে, রান করুন:
find /home /opt -name test.txt
"/home" ডিরেক্টরিতে হিডেন ফাইল খুঁজতে, রান করুন:
find /home -name ".*"
"test.txt" নামে একটি সিঙ্গল ফাইল খুঁজে সেটি রিমুভ করতে, রান করুন:
find /home -type f -name test.txt -exec rm -f {} \;
"/opt" ডিরেক্টরির অধীনে সকল খালি ফাইল খুঁজতে, রান করুন:
find /opt -type f -empty
নাম দিয়ে ডিরেক্টরি খুঁজুন
আপনি যদি "/home" ডিরেক্টরির অধীনে "testdir" নামে সকল ডিরেক্টরি খুঁজতে চান, তবে রান করুন:
find /home -type d -name testdir
"/home"-এর অধীনে সকল খালি ডিরেক্টরি ফাইল করতে, রান করুন:
find /home -type d -empty
নির্দিষ্ট পারমিশনवाले ফাইল খুঁজুন
find কমান্ড perm অপশন ব্যবহার করে নির্দিষ্ট পারমিশনवाले ফাইল খুঁজে বের করতে পারে।
"/home" ডিরেক্টরিতে যেসব ফাইল পারমিশন "777", সেগুলো খুঁজতে, রান করুন:
find /home -type f -perm 0777 -print
পারমিশন "777" ছাড়া সকল ফাইল খুঁজতে, রান করুন:
find . -type f ! -perm 777
সকল রিড-অনলি ফাইল খুঁজতে, রান করুন:
find /home -perm /u=r
সকল এক্সিকিউটেবল ফাইল খুঁজতে, রান করুন:
find /home -perm /a=x
"553" পারমিশনवाले সকল স্টিকি বিট সেট ফাইল খুঁজতে, রান করুন:
find /home -perm 1553
সকল SUID সেট ফাইল খুঁজতে, রান করুন:
find /home -perm /u=s
পারমিশন "777" যেসব ফাইলের, সেগুলো খুঁজে তাদের পারমিশন "700"-এ চেঞ্জ করতে, রান করুন:
find /home -type f -perm 0777 -print -exec chmod 700 {} \;
ডেট এবং টাইম অনুযায়ী ফাইল ও ডিরেক্টরি খুঁজুন
"/opt"-এর অধীনে যেসব ফাইল ২০ দিন আগে মডিফাইড হয়েছিল, সেগুলো খুঁজতে, রান করুন:
find /opt -mtime 20
"/opt"-এর অধীনে যেসব ফাইল ২০ দিন আগে অ্যাক্সেস হয়েছিল, সেগুলো খুঁজতে, রান করুন:
find /opt -atime 20
"/opt"-এর অধীনে যেসব ফাইল ৩০ দিনের বেশি আগে মডিফাইড হয়েছিল এবং ৫০ দিনের কম আগে, সেগুলো খুঁজতে:
find /opt -mtime +30 -mtime -50
"/opt"-এর অধীনে গত দুই ঘন্টায় যেসব ফাইল চেঞ্জ হয়েছিল, সেগুলো খুঁজতে, রান করুন:
find /opt -cmin -120
সাইজ অনুযায়ী ফাইল ও ডিরেক্টরি খুঁজুন
"/home" ডিরেক্টরির অধীনে সকল ১০এমবি ফাইল খুঁজতে, রান করুন:
find /home -size 10M
"/home" ডিরেক্টরির অধীনে যেসব ফাইল ১০এমবির চেয়ে বড় এবং ৫০এমবির চেয়ে ছোট, সেগুলো খুঁজতে, রান করুন:
find /home -size +10M -size -50M
"/home" ডিরেক্টরির অধীনে ১০এমবির চেয়ে বড় সকল ".mp4" ফাইল খুঁজে একটি কমান্ডে ডিলিট করতে, রান করুন:
find /home -type f -name *.mp4 -size +10M -exec rm {} \;
আপনি দেখতে পাচ্ছেন, find কমান্ড একটি সিস্টেম অ্যাডমিনিস্ট্রেট করার জন্য, ডিরেক্টরি খুঁজে ফাইল বের করার জন্য, এবং সাধারণত লিনাক্সে ভার্চুয়াল ডিরেক্টরি ট্রি প্রুন করার জন্য অবিশ্বাস্যভাবে উপকারী। আপনি এই লিনাক্স আর্টিকেলটি ভালো লাগলে, আমাদের অন্যান্য লিনাক্স কন্টেন্ট চেক করুন, যেমন: scp কমান্ড ব্যবহার করে সিকিউরলি ফাইল ট্রান্সফার করার পদ্ধতি, টার্মিনালে nnn ফাইল ম্যানেজার হিসেবে ব্যবহার করার পদ্ধতি, এবং ব্রোকেন প্যাকেজ ফিক্স করার পদ্ধতি।