ভূমিকা: আমি -exec {} \;& এর মধ্যে পার্থক্য বুঝতে পারি -exec {} +। আমারও এর মতো সমস্যা নেই , আমি এর শব্দার্থ সম্পর্কে শুধু কৌতূহলী find।
পরিবর্তে -execযুক্তি শেষ +করার সময় ;, আমাদের এটি দিয়ে শেষ করা দরকার{} + , উদাহরণস্বরূপ:
# FreeBSD find
$ find . -type f -exec cp {} /tmp +
find: -exec: no terminating ";" or "+"
# GNU find is even more cryptic:
$ find: missing argument to `-exec'
;এই উদাহরণগুলিতে ব্যবহার না +করে ভাল কাজ করে (তবে স্পষ্টতই অন্য কিছু করে)।
পসিক্স থেকে :
-exec utility_name [argument ...] ;
-exec utility_name [argument ...] {} +... কেবলমাত্র একটি <plus-sign> যা তাত্ক্ষণিকভাবে কেবলমাত্র দুটি অক্ষর সমন্বিত একটি আর্গুমেন্ট অনুসরণ
{}করে প্রাথমিক এক্সপ্রেশনটির শেষেকে বিরামচিহ্ন করে। <প্লাস-সাইন> এর অন্যান্য ব্যবহারগুলি বিশেষ হিসাবে বিবেচিত হবে না।
অন্য কথায়, যখন ব্যবহার +, কমান্ড প্রয়োজন সঙ্গে যুদ্ধে প্রতি {} +।
কেন? এবং কেন শুধুমাত্র সাথে +এবং না ;? প্রথমে আমি ভেবেছিলাম সম্ভবত ফাইল নামগুলির সাথে দ্বন্দ্ব এড়াতে একটি +, তবে ফাইলের নামগুলি ;ভাল কাজ করে বলে মনে হচ্ছে? এই সীমাবদ্ধতাটি নির্বিচারে বিশ্বাস করা আমার পক্ষে কঠিন ...
The "-exec ... {} +" syntax adopted was a result ofIEEE PASC Interpretation 1003.2 #210Note that the "+" is only treated as special if it immediately follows "{}". This minimises the chances of causing problems with existing uses of "+" as an argument with "-exec".