থেকে man find
:
-exec আদেশ;
আদেশ কার্যকর; যদি 0 স্ট্যাটাস ফিরে আসে তবে সত্য true ';' 'যুক্ত একটি যুক্তি না পাওয়া পর্যন্ত অনুসন্ধানের জন্য নিম্নলিখিত সমস্ত যুক্তি কমান্ডের আর্গুমেন্ট হিসাবে নেওয়া হবে; সম্মুখীন হয়। '{}' স্ট্রিংটি বর্তমান ফাইলের নাম দ্বারা প্রসেস করা হচ্ছে যেখানেই এটি কমান্ডের আর্গুমেন্টগুলিতে ঘটে সেখানেই যুক্ত করা হয়, যেখানে এটি একা রয়েছে কেবল তত যুক্তিগুলিতে নয়, যেমন অনুসন্ধানের কয়েকটি সংস্করণে রয়েছে। এই দুটি নির্মাণই শেল দ্বারা সম্প্রসারণ থেকে রক্ষা করতে ('\' সহ) বা উদ্ধৃত হওয়া প্রয়োজন হতে পারে। '-Exec' বিকল্পের ব্যবহারের উদাহরণগুলির জন্য উদাহরণ সেকশন বিভাগটি দেখুন। নির্দিষ্ট কমান্ডটি প্রতিটি ম্যাচ করা ফাইলের জন্য একবার চালানো হয়।
কমান্ডটি শুরু ডিরেক্টরিতে কার্যকর করা হয়। অ-নিরাপদ বিকল্পটি ব্যবহারের চারপাশে অনিবার্য সুরক্ষা সমস্যা রয়েছে;
-exec কমান্ড {} +
-Exec বিকল্পের এই রূপটি নির্বাচিত ফাইলগুলিতে নির্দিষ্ট কমান্ড চালায়, তবে প্রতিটি নির্বাচিত ফাইলের নাম শেষে অন্তর্ভুক্ত করে কমান্ড লাইনটি নির্মিত হয় ; কমান্ডের অনুরোধের মোট সংখ্যা মিলিত ফাইলগুলির সংখ্যার তুলনায় অনেক কম হবে। কমান্ড লাইনটি একইভাবে নির্মিত হয়েছে যেমন xargs তার কমান্ড লাইনগুলি তৈরি করে। কমান্ডের মধ্যে '{}' কেবলমাত্র একটি উদাহরণ অনুমোদিত। কমান্ডটি শুরু ডিরেক্টরিতে কার্যকর করা হয়।
সুতরাং, আমি এটি যেভাবে বুঝতে পারি তার \;
দ্বারা প্রাপ্ত প্রতিটি ফাইলের জন্য একটি পৃথক কমান্ড কার্যকর করে find
, যেখানে \+
ফাইলগুলি সংযোজন করা হয় এবং সেগুলির উপরে একটি একক কমান্ড কার্যকর করে। \
, একটি পালাবার চরিত্র তাই এটি আছে:
ls testdir1; ls testdir2
বনাম
ls testdir1 testdir2
আমার শেলটিতে উপরেরটি করা আপনার প্রশ্নের আউটপুটকে মিরর করেছে।
আপনি কখন ব্যবহার করতে চান তার উদাহরণ \+
ধরুন, দুটি ফাইল 1.tmp
এবং 2.tmp
:
1.tmp:
1
2
3
2.tmp:
0
2
3
সহ \;
:
find *.tmp -exec diff {} \;
> diff: missing operand after `1.tmp'
> diff: Try `diff --help' for more information.
> diff: missing operand after `2.tmp'
> diff: Try `diff --help' for more information.
আপনি যদি ব্যবহার করেন তবে \+
(এর ফলাফলগুলি বোঝাতে find
):
find *.tmp -exec diff {} \+
1c1,3
< 1
---
> 0
> 2
> 30
তাই এই ক্ষেত্রে এটি পার্থক্য diff 1.tmp; diff 2.tmp
এবংdiff 1.tmp 2.tmp
কিছু ক্ষেত্রে রয়েছে যেখানে \;
উপযুক্ত এবং \+
প্রয়োজনীয় হবে। এর সাথে ব্যবহার \+
করা rm
এমন একটি উদাহরণ, যেখানে আপনি যদি প্রচুর পরিমাণে ফাইলের পারফরম্যান্স (গতি) সরিয়ে ফেলেন তবে এর চেয়ে সেরা হবে \;
।