এক্সেক্স 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.