find কমান্ডের পরিচিতি
লিনাক্সে ফাইল খুঁজে বের করার জন্য find কমান্ড ব্যবহার করা হয়। এটি ফাইল সিস্টেমে রিকার্সিভলি সার্চ করে।
বেসিক সিনট্যাক্স
find [path] [expression] [filename]
- path: কোথা থেকে সার্চ শুরু করবে (ডিফল্ট বর্তমান ডিরেক্টরি)।
- expression: কী ধরনের ফাইল খুঁজবে (নাম, আকার, সময়, পারমিশন ইত্যাদি)।
- filename: ফাইলের নাম বা প্যাটার্ন।
সার্চ লোকেশন শর্টকাট (মেটাক্যারেক্টার)
- . (পিরিয়ড): বর্তমান ডিরেক্টরি এবং সাব-ডিরেক্টরিগুলো।
- / (ফরোয়ার্ড স্ল্যাশ): পুরো ফাইল সিস্টেম।
- ~ (টিল্ডা): বর্তমান ইউজারের হোম ডিরেক্টরি।
নোট: পুরো ফাইল সিস্টেম সার্চ করলে পারমিশন এরর দিতে পারে। sudo দিয়ে রান করলে সমাধান হবে।
সাধারণ এক্সপ্রেশন (Expression) গুলো
সবচেয়ে phổ biến: -name (ফাইল/ফোল্ডার নাম দিয়ে সার্চ)। অন্যান্য গুরুত্বপূর্ণ এক্সপ্রেশন:
- -iname pattern: কেস-ইনসেনসিটিভ নাম সার্চ।
- -type f/d/l: ফাইল (f), ডিরেক্টরি (d), সিমবোলিক লিংক (l) খুঁজে।
- -size n: ফাইল আকার অনুযায়ী (c=বাইট, k=কিলোবাইট, M=মেগাবাইট, G=গিগাবাইট)।
- -mtime n: n দিন আগে মডিফাইড ফাইল।
- -atime n: n দিন আগে এক্সেস করা ফাইল।
- -empty: খালি ফাইল/ডিরেক্টরি।
- -executable / -readable / -writable: পারমিশন অনুযায়ী।
- -user name / -group name: মালিক/গ্রুপ অনুযায়ী।
- -perm mode: পারমিশন মোড অনুযায়ী।
- -regex pattern: রেগুলার এক্সপ্রেশন দিয়ে সার্চ।
ব্যবহারিক উদাহরণ
নির্দিষ্ট দিনের আগে এক্সেস করা ফাইল খুঁজুন
find ~ -atime +100
হোম ডিরেক্টরিতে ১০০ দিনের বেশি আগে এক্সেস করা সব ফাইল খুঁজে দেবে।
খালি ফাইল ও ফোল্ডার খুঁজুন
find / -empty
সব এক্সিকিউটেবল ফাইল খুঁজুন
find / -executable -type f
সব পঠনযোগ্য (readable) ফাইল খুঁজুন
find / -readable -type f
প্যাটার্ন (Wildcard) ব্যবহার করে সার্চ
এক্সটেনশন বা অংশিক নাম দিয়ে সার্চ করতে প্যাটার্ন ব্যবহার করুন। উদাহরণ: সব MP3 ফাইল খুঁজতে:
find / -name "*.mp3"
টিপ: শেল অনুযায়ী অ্যাসটারিস্ক (*) এস্কেপ করতে হতে পারে। কাজ না করলে কোটেশন ব্যবহার করুন: find / -name '*.mp3'।
find আউটপুট ফাইলে সংরক্ষণ করুন
অনেক ফলাফল আসলে টার্মিনালে দেখতে কষ্ট হয়। আউটপুট ফাইলে রিডাইরেক্ট করুন:
find / -name "*.log" > log_files.txt
অথবা tail দিয়ে শেষের কিছু লাইন দেখুন: find / -name "*.log" | tail -20।
find দিয়ে ফাইল খুঁজে সাথে সাথে কমান্ড এক্সিকিউট করুন (-exec)
ফাইল খুঁজে পাওয়ার সাথে সাথে ওপেন বা এডিট করতে -exec ব্যবহার করুন। উদাহরণস্বরূপ, filename নামক ফাইল খুঁজে nano এডিটরে খুলতে:
find / -name "filename" -exec nano {} \;
এখানে {} হলো খুঁজে পাওয়া ফাইলের প্লেসহোল্ডার এবং \; কমান্ডের সমাপ্তি নির্দেশ করে। nano যেকোনো কমান্ড হতে পারে (যেমন rm, cp, chmod ইত্যাদি)।