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


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.