অ্যান্ড্রয়েড

লিনাক্সে জার্সস কমান্ড

LINAK থেকে লিনিয়ার Actuator LA23

LINAK থেকে লিনিয়ার Actuator LA23

সুচিপত্র:

Anonim

xargs ইউটিলিটি আপনাকে স্ট্যান্ডার্ড ইনপুট থেকে আদেশগুলি তৈরি করতে এবং xargs করতে দেয়। এটি পাইপিংয়ের মাধ্যমে অন্যান্য কমান্ডের সাথে একত্রে ব্যবহৃত হয়।

xargs আপনি mkdir এবং rm মতো কমান্ড-লাইন ব্যবহারের জন্য আর্গুমেন্ট হিসাবে আদর্শ ইনপুট সরবরাহ করতে পারেন।

এই টিউটোরিয়ালে, আমরা xargs কমান্ড ব্যবহারের মূল বিষয়গুলি কভার করব।

কীভাবে লিনাক্স xargs কমান্ড ব্যবহার করবেন

xargs ফাঁকা ফাঁকা জায়গা বা নিউলাইন দ্বারা পৃথক স্ট্যান্ডার্ড ইনপুট থেকে আর্গুমেন্টগুলি পড়ে এবং কমান্ডের আর্গুমেন্ট হিসাবে ইনপুট ব্যবহার করে নির্দিষ্ট কমান্ডটি কার্যকর করে। যদি কোনও কমান্ড সরবরাহ না করা হয় তবে ডিফল্টটি হ'ল /bin/echo

xargs কমান্ডের বাক্য xargs নিম্নরূপ:

xargs]

xargs ব্যবহারের সর্বাধিক প্রাথমিক উদাহরণটি xargs হোয়াইটস্পেসের সাথে আলাদা আলাদা স্ট্রিংগুলি পাইপ ব্যবহার করে জার্গাগুলি ব্যবহার করা এবং একটি কমান্ড চালানো যা সেই স্ট্রিংগুলিকে আর্গুমেন্ট হিসাবে ব্যবহার করবে।

echo "file1 file2 file3" | xargs touch

উপরের উদাহরণে, আমরা স্ট্যান্ডার্ড ইনপুটটি xargs পাইপ করছি এবং প্রতিটি যুক্তির জন্য touch কমান্ডটি চালিত হয়, তিনটি ফাইল তৈরি করে। এটি আপনি চালাতে হবে যেমন:

touch file1 file2 file3

কীভাবে কমান্ডটি দেখুন এবং ব্যবহারকারীকে প্রম্পট করবেন

টার্মিনালটি কার্যকর করার আগে কমান্ডটি প্রিন্ট করতে -t ( --verbose ) বিকল্পটি ব্যবহার করুন:

echo "file1 file2 file3" | xargs -t touch

touch file1 file2 file3

echo "file1 file2 file3" | xargs -p touch

কমান্ডটি নিশ্চিত করতে এবং চালাতে y বা Y টাইপ করুন:

touch file1 file2 file3 ?…y

ধ্বংসাত্মক কমান্ড কার্যকর করার সময় এই বিকল্পটি কার্যকর।

আর্গুমেন্টের সংখ্যা কীভাবে সীমাবদ্ধ করবেন

ডিফল্টরূপে, কমান্ডে পাস হওয়া আর্গুমেন্টগুলির সংখ্যা সিস্টেমের সীমা দ্বারা নির্ধারিত হয়।

--max-args ( --max-args ) বিকল্পটি প্রদত্ত কমান্ডে আর্গুমেন্টগুলি সরবরাহ করার সংখ্যা নির্দিষ্ট করে। xargs সমস্ত আর্গুমেন্ট শেষ না হওয়া অবধি নির্দিষ্ট কমান্ডটি যতবার প্রয়োজন চালায়।

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

echo "file1 file2 file3" | xargs -n 1 -t touch

আপনি নীচের ভার্বোজ আউটপুট থেকে দেখতে পাচ্ছেন, প্রতিটি যুক্তির জন্য টাচ কমান্ড পৃথকভাবে কার্যকর করা হয়:

touch file1 touch file2 touch file3

একাধিক কমান্ড কিভাবে চালানো যায়

xargs সহ একাধিক কমান্ড চালাতে, -I বিকল্পটি ব্যবহার করুন। এটি -I বিকল্পের পরে একটি replace-str সংজ্ঞায়িত করে কাজ করে এবং replace-str এর সমস্ত উপস্থিতি xargs এ আর্গুমেন্টের সাথে প্রতিস্থাপন করা হয়।

নিম্নলিখিত xargs উদাহরণ দুটি কমান্ড চালাবে, প্রথমে এটি touch ব্যবহার করে ফাইল তৈরি করবে এবং তারপরে এটি ls কমান্ডের সাহায্যে ফাইলগুলি তালিকাভুক্ত করবে:

echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3

replace-str জন্য একটি সাধারণ পছন্দ % । তবে, আপনি অন্য স্থানধারক ব্যবহার করতে পারেন, উদাহরণস্বরূপ, ARGS :

echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'

কিভাবে একটি ডিলিমিটার নির্দিষ্ট করুন

একটি কাস্টম ডিলিমিটার সেট করতে -d ( --delimiter ) বিকল্পটি ব্যবহার করুন, যা একক অক্ষর বা escape দিয়ে শুরু করে একটি পালানোর ক্রম হতে পারে \

নিম্নলিখিত উদাহরণটি আমরা ব্যবহার করছি ; সীমানা হিসাবে:

echo "file1;file2;file3" | xargs -d ; -t touch

touch file1 file2 file3

ফাইল থেকে আইটেমগুলি কীভাবে পড়বেন

Xargs কমান্ড স্ট্যান্ডার্ড ইনপুটের পরিবর্তে কোনও ফাইল থেকে আইটেমগুলি পড়তে পারে। এটি করতে, ফাইলের নামের পরে -a ( --arg-file ) বিকল্পটি ব্যবহার করুন।

নিম্নলিখিত উদাহরণে, xargs কমান্ডটি ips.txt ফাইলটি ips.txt এবং প্রতিটি আইপি ঠিকানা পিং করবে।

ips.txt

8.8.8.8 1.1.1.1

আমরা -L 1 বিকল্পটিও ব্যবহার করছি, যা সেই xargs একটি লাইন পড়ার জন্য xargs কে নির্দেশ দেয়। এই বিকল্পটি বাদ দেওয়া হলে xargs সমস্ত আইপি একক ping কমান্ডে প্রেরণ করবে।

xargs -t -L 1 -a ips.txt ping -c 1

ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms

xargs সাথে xargs ব্যবহার করা

xargs প্রায়শই xargs কমান্ডের সাথে সংমিশ্রণে ব্যবহৃত হয়। আপনি নির্দিষ্ট ফাইলগুলির সন্ধানের জন্য অনুসন্ধান ব্যবহার করতে পারেন এবং তারপরে এই ফাইলগুলিতে ক্রিয়াকলাপ সম্পাদনের জন্য xargs ব্যবহার করতে পারেন।

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

নিম্নলিখিত উদাহরণে, find /var/www/.cache ডিরেক্টরিতে সমস্ত ফাইলের পুরো নাম মুদ্রণ করবে এবং xargs ফাইল পাথ rm কমান্ডে প্রেরণ করবে:

find /var/www/.cache -type f -print0 | xargs -0 rm -f

হোয়াইটস্পেস অক্ষরগুলি ছাঁটাতে এক্সার্গস ব্যবহার করা

xargs একটি প্রদত্ত স্ট্রিংয়ের উভয় দিক থেকে সাদা স্থান সরিয়ে ফেলতে একটি সরঞ্জাম হিসাবেও ব্যবহার করা যেতে পারে। xargs কমান্ডটি কেবল স্ট্রিংটি পাইপ করুন এবং এটি ছাঁটাই করবে:

echo " Long line " | xargs

Long line

শেল স্ক্রিপ্টগুলিতে স্ট্রিংগুলির তুলনা করার সময় এটি কার্যকর হতে পারে।

#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi

Strings are not equal. Strings are equal.

উপসংহার

xargs লিনাক্সের একটি কমান্ড-লাইন ইউটিলিটি যা আপনাকে কমান্ডগুলি তৈরি এবং xargs করতে সক্ষম করে।

প্রতিটি xargs বিকল্প সম্পর্কে বিস্তারিত তথ্যের জন্য, xargs ম্যান পৃষ্ঠাটি পড়ুন।

xargs টার্মিনাল