'ইন-ফাইন্ড / পাথ /-এক্সেক কমান্ড' {} '+ কী করবে?


13

কি +মধ্যে find /path/ -exec command '{}' +Do? উল্টোদিকেfind /path/ -exec command '{}' \;

উত্তর:


17

'+' চালিত কমান্ডের সংখ্যা হ্রাস করতে সমস্ত পাওয়া ফাইলগুলির মধ্যে একটি বড় কমান্ড লাইন তৈরি করে।

একটি ফাইন্ড কমান্ড চারটি ফাইল সন্ধান করে case

find . -type f -exec command '{}' \;

উত্পাদন করবে

command file1
command file2
command file3
command file4 

অন্য দিকে

find . -type f -exec command '{}' \+

উত্পাদন করে

command file1 file2 file3 file4

3
যদি আপনি জানেন xargs, -exec … {} +তবে একইভাবে কাজ করে -print | xargs …তবে উদ্ধৃত সমস্যাগুলি ছাড়াই ( -print0 | xargs -0অন্য উপায়, তবে এটি কম পোর্টেবল)।
গিলস 'অশুভ হওয়া বন্ধ করুন'

4

ম্যান পৃষ্ঠা থেকে:

-exec কমান্ড {} +

এই-এক্সেক অ্যাকশনের এই রূপটি নির্বাচিত ফাইলগুলিতে নির্দিষ্ট কমান্ড চালায়, তবে প্রতিটি নির্বাচিত ফাইলের নাম শেষে অন্তর্ভুক্ত করে কমান্ড লাইনটি নির্মিত হয়; কমান্ডের অনুরোধের মোট সংখ্যা মিলিত ফাইলগুলির সংখ্যার তুলনায় অনেক কম হবে। কমান্ড লাইনটি একইভাবে নির্মিত হয়েছে যেমন xargs তার কমান্ড লাইনগুলি তৈরি করে। কমান্ডের মধ্যে কেবলমাত্র `{} 'এর একটি উদাহরণ অনুমোদিত। কমান্ডটি শুরু ডিরেক্টরিতে কার্যকর করা হয়।


1
মানুষ যে খুব ... সংশ্লেষ? আমি এটি গভীরতা এবং স্পষ্টতা অভাব হতে পারে।
xenoterracide

ধারণাটি হ'ল প্রতিটি ফাইলের জন্য একটি প্রক্রিয়া অন্ধভাবে ছড়িয়ে দেওয়া নয়, তবে ফাইলের নামগুলি একত্রিত করা এবং কমান্ডটি কয়েকবার কল করা। একটি উদাহরণ: 3 টি পৃথক "আরএম ফাইল ফাইল" প্রক্রিয়া তৈরি করার পরিবর্তে এটি ফাইলের নাম সংগ্রহ করে এবং "rm FILE1 FILE2 FILE3" করে।
ট্যান্ট

আইআইআরসি এক্সআরজ-এর কয়েকটি সংস্করণে একটি নির্দিষ্ট সীমা পর্যন্ত এই নামগুলি একত্রে ব্যাচ করার বিকল্প রয়েছে, যাতে আপনি এটি থেকে লাভবান হতে পারেন তবে আপনার খুব বড় তালিকা থাকলেও উপচে পড়া এড়াতে পারবেন।
কেভিন কেন্টু

(সন্ধান করুন, নিজেই এটি একটি ভীতিকর ছোট্ট ভাষা তার নিজস্ব নিজস্ব!)
কেভিন ক্যান্টু

findআমাকে একটি সেমি দেয়
ম্যাট আলেকজান্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.