এক্সেক্স xargs এবং -প্রিন্ট 0 এর ব্যবহার কী?


20

আমি মনে করি এগুলি হ'ল ইনপুট হিসাবে একটি কমান্ডের ফলাফল পরবর্তী আদেশে পাস করার সাধারণ উপায়।

এই তিনটি কীভাবে কাজ করবে? অথবা কিছু ওয়েবসাইট / ইউআরএল কি?

উত্তর:


25

প্রথম জিনিস টাইপ করুন:

man find

man xargs

findডিফল্টরূপে মানক আউটপুটে কমান্ড কপি করে প্রিন্ট ফলাফল, তাই -printবিকল্প স্বাভাবিকভাবে প্রয়োজন না হয়, কিন্তু -print0একটি 0 (শূন্য) বাইট সঙ্গে ফাইলের নামের আলাদা যাতে নাম স্পেস বা নতুন লাইন ধারণকারী সঠিকভাবে ব্যাখ্যা করা যেতে পারে।

-execবিকল্প কিছু xargs পরিবর্তে ব্যবহার করতে পারেন - find কমান্ডের এটা খুঁজে বের করে প্রতিটি আইটেমের জন্য কমান্ড সঞ্চালন করে।

xargsকমান্ড লেখা SPACE- বা সম্পর্কে newline বিভাজিত স্ট্রিং (সাধারণত থেকে খোঁজ কমান্ড, কিন্তু তারা যে কোন জায়গা থেকে আসতে পারে) এবং প্রতিটি পংক্তি জন্য কিছু কমান্ড সঞ্চালন করে।
যদি xargs -0 বিকল্পের সাহায্যে চালিত হয় তবে এটি আউটপুট হিসাবে নুল-বিচ্ছিন্ন স্ট্রিংগুলি আশা করেfind ... -print0

Xargs এর সুবিধাটি হ'ল এটি স্ট্রিংগুলি একসাথে গ্রুপ করতে পারে, যাতে এটি কেবল n বারের পরিবর্তে একবার বা দু'বার কমান্ড কার্যকর করে ।

তাই সাধারণ ব্যবহারে:

find start_directory -name '*.txt' | xargs ls -l 

ফাইলের নামগুলি সন্ধান করবে এবং xargs কমান্ড জারি করবে:

ls -l file1.txt file2.txt file3.txt ... fileN.txt

আপনার অনুসন্ধান আদেশটি জারি করার চেয়ে দ্রুত যা:

ls -l file1.txt
ls -l file2.txt
ls -l file3.txt
ls -l ...
ls -l fileN.txt

7

নোট করুন যে বর্তমান সন্ধানের বাস্তবায়নগুলির সাথে xargs আর প্রয়োজন নেই যা সম্ভবত সকলেই এই পসিক্স সিনট্যাক্সকে সমর্থন করে:

find directory -name '*.txt' -exec ls -l {} + 

যা জার্গেস বৈকল্পিকের চেয়ে সহজ এবং সামান্য দ্রুত।

find directory -name '*.txt' | xargs ls -l 

xargs 'find -exec' এর চেয়ে অনেক কম সংস্থান ব্যবহার করে
— ফিলিপ আলভারেজ

7
এটাই অন্য পথে। এক্সগার্সে পাইপিং-এক্সেকের চেয়ে কিছুটা বেশি সংস্থান ব্যবহার করবে। আপনি সম্ভবত "+" টার্মিনেটরটিকে উপেক্ষা করবেন।
— jlliagre

2

এই লিঙ্কগুলির মধ্যে কমপক্ষে একটি মারা গেছে। এটি কেবল প্রাসঙ্গিক কোড নমুনা পোস্ট করা ভাল।
— ব্যবহারকারী5359531

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