- খালি সমাধান -
যদি আপনি find
সন্ধান করা ডিরেক্টরিটির বিষয়বস্তুগুলি এড়িয়ে যেতে চান তবে অন্যান্য ডিরেক্টরিতে অনুসন্ধান চালিয়ে যেতে চান , -prune
@laebhade এর প্রস্তাবিত হিসাবে ব্যবহার করুন । সম্পূর্ণ কমান্ডটি এর মতো দেখতে হবে
find . -type d -name somename -prune -exec ...
অন্যদিকে, যদি তুমি চাও find
সম্পূর্ণরূপে করার অনুসন্ধানের বন্ধ এবং প্রথম ম্যাচিং ডিরেক্টরির খোঁজার পর, তাহলে কি আপনি খুঁজছেন হয় -quit
(সংস্করণ থেকে পাওয়া 4.2.3
এর GNU find
)। এটি ব্যবহার করতে কিছুটা জটিল, কারণ এটি find
অবিলম্বে প্রস্থান করে - সুতরাং -quit
অবশ্যই কমান্ডের একেবারে শেষে স্থাপন করা উচিত:
find . -type d -name somename -exec ... -quit
এটি প্রত্যাশার মতো কাজ করার জন্য, একজনকে নিশ্চয়তা দিতে হবে যে -exec
রিটার্নগুলি সত্য (অন্য কথায়, একটি শূন্য স্থিতি)। আপনি যদি প্রস্থান স্থিতি -exec
অবহেলা করতে চান , যাতে এটি -quit
সর্বদা কার্যকর হয়, আপনার একটু কৌশল দরকার:
find . -type d -name somename \( -exec ... -o -true \) -quit
অথবা
find . -type d -name somename \( -exec ... -o -quit \)
অথবা
find . -type d -name somename \( -exec ... , -quit \) # a comma before -quit
- কিছু ব্যাখ্যা -
কীভাবে find
কাজ করে সে সম্পর্কে সর্বাধিক গুরুত্বপূর্ণ বিষয় হ'ল সমস্ত ক্রিয়া ("পরীক্ষা") বাম থেকে ডানদিকে ব্যাখ্যা করা যৌক্তিক ভবিষ্যদ্বাণী হিসাবে বিবেচিত হয় । অতএব, শেষ ক্রিয়াটি (উদাহরণস্বরূপ -quit
) কেবল তখনই সম্পাদিত হবে যদি পুরো পূর্ববর্তী অংশটি মিথ্যা না ফেরত । ডিফল্টরূপে, সমস্ত পরীক্ষাগুলি যৌক্তিক "AND" এর সাথে যুক্ত হয়, -o
বিকল্পটি যৌথটিকে "OR" তে পরিবর্তন করে।
এর একটি জটিল উপাদানটি -o
হ'ল find
আপনার আদেশটি "অনুকূলিত" করতে পারে এবং -exec
আপনি ঠিক লিখলে অংশটি চালাতে পারেন না
find . -type d -name somename -exec ... -o -quit
এটি মোকাবেলা করার জন্য, আপনি find
"ও" দিয়ে পাঠানো সমস্ত পূর্বাভাসকে প্রথম বন্ধনীতে আবদ্ধ করে মূল্যায়ন করতে বাধ্য করতে পারেন ।