find: টেস্ট
find
প্রোগ্রামটিতে অপশন হিসেবে আমরা কিছু ফিল্টার যোগ করতে পারি। অর্থাৎ, সার্চ করার সময় ওই বিষয়গুলোর প্রতি নজর দেবে। এবং সেইসব ফাইলই দেখাবে যেগুলো শর্তপূরণ করে। মোটের ওপর সবরকম টেস্টকে আমরা তিনভাগে ভাগ করতে পারি।- ফাইলের ধরণ সংক্রান্ত টেস্ট: এই টেস্টগুলো দিয়ে ফাইলের ধরণ নির্দিষ্ট করে দেওয়া যায়।
- ফাইলের আকার সংক্রান্ত টেস্ট: এগুলো ব্যবহৃত হয় নির্দিষ্ট আকারের ফাইল খুঁজতে।
- অন্যান্য: উপরের দুই ধরণের ছাড়া বাকি সব টেস্ট এই ধরণের অন্তর্ভূক্ত।
find ~ | wc -l
কমান্ড দিয়ে আমরা হোম ডিরেক্টরির সকল ফাইল ও সাবডিরেক্টরির মিলিত সংখ্যা পেয়েছিলাম। এখন আমরা যদি চাই শুধু ডিরেক্টরির সংখ্যা পেতে তাহলে কী করতে হবে? আমাদের find
প্রোগ্রামকে বলতে হবে যে শুধু ডিরেক্টরিগুলোই যেন সে আমলে আনে। আমরা সেটি করতে পারি এভাবে:[email protected]: find ~ -type d | wc -l
13840
তাহলে, আমরা দেখতে পাচ্ছি, কোনো নির্দিষ্ট ধরণের ফাইল খুঁজতে হলে আমাকে -type অপশনটি যোগ করতে হবে এবং তার সাথে দিতে হবে ফাইলের ধরণ নির্দেশক বিশেষ চিহ্ণ। যেমন এক্ষেত্রে d দিয়ে directory বোঝানো হয়েছে। আমরা নিচের টেবিল থেকে যেকোনো চিহ্ন ধরণ বোঝাতে ব্যবহার করতে পারি:
চিহ্ন | ফাইলের ধরণ |
b | ব্লক স্পেশাল ডিভাইস ফাইল |
c | ক্যারেক্টার স্পেশাল ডিভাইস ফাইল |
d | ডিরেক্টরি |
f | সাধারণ ফাইল |
l | সিম্বোলিক লিঙ্ক |
এবার মনে করুন আমরা সেইসব ফাইল সংখ্যা জানতে চাই যেগুলোর আকার ৫০০ মেগাবাইটের চেয়ে বড়। তাহলে আমরা সেটা করতে পারি এই কমান্ড দিয়ে:
[email protected]: find ~ -type f -size +500M | wc -l
11
তারমানে আকার অনুযায়ী ফিল্টার করতে আমাদের -size অপশন ব্যবহার করতে হবে। তারপর '+' বা '-' দিয়ে বড় বা ছোট ব োঝাতে হবে। তারপর সংখ্যা ও একক নির্দেশক চিহ্ণ। যেমন এখানে মেগাবাইটের জন্য M ছিল।
এবার আমরা চিহ্নগুলো দেখে নিই:
চিহ্ন | একক |
b | ৫১২ বাইটের ব্লক। কোনো এককনির্দেশক চিহ্ণ না থাকলে এটি ডিফল্ট হিসেবে ব্যবহৃত হয়। |
c | বাইট |
w | ২ বাইটের শব্দ |
k | কিলোবাইট |
M | মেগাবাইট |
G | গিগাবাইট |
মনে করি হোম ফোল্ডারে আমরা কিছু ISO ইমেজ খুঁজবো যেগুলো ৫০০এমবির চেয়ে বড়। যেহেতু ইমেজগুলো ফাইল এবং এর এক্সটেনসন হবে iso আমরা লিখতে পারি:
[email protected]: find ~ -type f -name "*.iso" -size +500M
/home/me/porteus-refinished.iso
/home/me/lubuntu-14.04.1-desktop-i386.iso
/home/me/porteus-pocketboy-25-12-14.iso
/home/me/archlinux-2015.01-1-archboot.iso
/home/me/debian-7.7.0-amd64-CD-1.iso
/home/me/lubuntu-14.10-desktop-i386.iso
এখানে আমরা -name অপশন যোগ করেছি। আর ওয়াইল্ডকার্ড ব্যবহার করে সেইসব ফাইল খুঁজতে বলেছি যেগুলোর শেষ হয়
.iso
দিয়ে।find
কমান্ডের অনেক অনেক অপশন আছে। তারমধ্যে গুরুত্বপূর্ণ কিছু এখানে দিচ্ছি:টেস্ট | কাজ |
-cmin n | n মিনিট আগে বা পরে স্ট্যাটাস মোডিফাইড হয়েছে। |
-cnewer file | file এর পরে স্ট্যাটাস বা ডাটা মোডিফাইড হয়েছে এমনসব ফাইল বা ডিরেক্টরি খুঁজবে। |
-ctime n | n দিন আগে স্ট্যাটাস মোডিফাইড হয়েছে। |
-empty | ফাঁকা ফাইল বা ডিরেক্টরি। |
-group name | name নামক গ্রুপের অন্তর্গত। |
-iname pattern | নির্দিষ্ট প্যাটার্নের ফাইল বা ডিরেক্টরি খুঁজবে তবে কেস ইনসেনসিটিভ। |
-inum n | n ইনোড নম্বরওয়ালা সব ফাইল খুঁজে বের করবে। |
-mmin n | n মিনিট আগে বা পরে ডাটা মোডিফাইড হয়েছে। |
-mtime n | n দিন আগে ডা টা মোডিফাইড হয়েছে। |
-name pattern | নির্দিষ্ট প্যাটার্নের ফাইল বা ডিরেক্টরি খুঁজবে তবে কেস সেনসিটিভ। |
-newer file | file এর পরে ডাটা মোডিফাইড হয়েছে এমনসব ফাইল বা ডিরেক্টরি খুঁজবে। |
-nouser | এমনসব ফাইল বা ডিরেক্টরি যা কোনো ইউজারের না। |
-nogroup | এমনসব ফাইল বা ডিরেক্টরি যা কোনো গ্রুপের না। |
-perm mode | পারমিশন মোড অনুযায়ী খুঁজবে। |
-samefile name | n ইনোড নম্বরওয়ালা সব ফাইল খুঁজে বের করবে। |
-user name | name নামক ইউজারনেমের ফাইল ও ডিরেক্টরি খুঁজবে। |
Last modified 4yr ago