> For the complete documentation index, see [llms.txt](https://sh.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sh.howtocode.dev/3.0.0.part3intro/3.5.0.0.search/3.5.2.0.find/3.5.2.2.operator.md).

# find: অপারেটর

আগের [লেসনে](https://github.com/howtocode-com-bd/sh.howtocode.com.bd/tree/3dc812802322247d70de373bfe7cfba0e0e18699/3.5.2.1.operator.md) আমরা টেস্টের ব্যবহার দেখেছি। কিন্তু আমরা যদি আরো জটিল টেস্ট চালাতে চাই? মনে করুন শুধু সেই iso ইমেজগুলো খুঁজবো যেগুলো ৩০০ মেগাবাইটের চেয়ে বড় এবং ৮০০ মেগাবাইটের চেয়ে ছোট। তাহলে আমরা কী করব? আমরা কাজটি করতে পারি এভাবে:

```
me@howtocode-pc:~$ find ~ -type f -name "*.iso" \( -size +300M \) -and \( -size -700M \)
/home/nishadsingha/lubuntu-14.04.1-desktop-i386.iso
/home/nishadsingha/archbang-150328-i686.iso
/home/nishadsingha/Porteus-KDE4-v3.1-i486.iso
/home/nishadsingha/debian-7.7.0-amd64-CD-1.iso
```

আমাদের এই কমান্ডে `\( -size +300M \) -and \( -size -700M \)` অংশটুকু নতুন। এখানে আমরা `-size +300M` এবং `-size -700M` এক্সপ্রেশনদুটিকে প্রথমে ব্রাকেটে আবদ্ধ করেছি। যেহেতু শেলের কাছে ব্রাকেটের বিশেষ অর্থ আছে তাই তার সামনে '\\' ব্যবহার করতে হয়েছে। তারপর এক্সপ্রেশনদুটিকে -and অপারেটর দিয়ে যুক্ত করেছি। ফলে \`find সেসব ফাইলই খুঁজবে যেগুলো নামের শেষে .iso আছে এবং সেগুলো ৩০০এমবি থেকে বড় এব: ৭০০ এমবি থেকে ছোট। অন্যান্য অপারেটরগুলি হলো:

| অপারেটর | কাজ                                                                                      |
| ------- | ---------------------------------------------------------------------------------------- |
| -and    | অপারেটরের উভয় পাশের এক্সপ্রেশনের শর্তপূরণ করে এমন ফাইল দেখাবে।                           |
| -or     | অপারেটরের উভয় পাশের এক্সপ্রেশনের যে কোনো একটি শর্তপূরণ করে এমন ফাইল দেখাবে।              |
| -not    | বীপরীত শর্ত তৈরী করবে। যেমন `-not -perm 0600` সেইসব ফাইলকে দেখাবে যাদের পারমিশন 0600 নয়। |
| ()      | টেস্ট এক্সপ্রেশনকে আবদ্ধ করতে ব্যবহৃত হয়।                                                |
