از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از xargs روی لینوکس
سرفصلهای مطلب
xargs چگونه کار می کند:
فرمتی که در آن از دستور xargs استفاده می کنید این است:
شما همچنین می توانید رفتار xargs را با برخی از گزینه ها تغییر دهید. در این صورت فرمت دستور xargs به صورت زیر خواهد بود:
در اینجا، خروجی از فرمان 1 به عنوان استدلال استفاده خواهد شد فرمان 2. خروجی از فرمان 1 بسته به xargs به آرگومان های زیادی تقسیم می شود روی شخصیتی به نام جداکننده. سپس، xargs دستور را اجرا می کند فرمان 2 برای هر یک از این آرگومان ها و آن آرگومان به عنوان آرگومان فرمان منتقل می شود فرمان 2.
به عنوان مثال، فرض کنید، خروجی از فرمان 1 به شرح زیر است:
بیایید بگوییم، شخصیت جداکننده است فضا. در حال حاضر، خروجی از فرمان 1 به 3 آرگومان تقسیم می شود، ارزش 1، ارزش 2، و ارزش 3.
اکنون xargs دستور را اجرا می کند فرمان 2 برای هر یک از 3 آرگومان یک بار.
$ command2 value2
$ command2 value3
اینجا، ارزش 1، ارزش 2، و ارزش 3 آرگومان هایی هستند که توسط xargs از خروجی فرمان تجزیه می شوند فرمان 1.
شما می توانید با استفاده از حلقه ها در اسکریپت پوسته به همان اثر برسید. اما xargs فقط یک راه ساده تر برای انجام کارها بدون حلقه است، به خصوص روی خط فرمان
به طور پیش فرض، جداکننده xargs کاراکتر newline/space است. اما می توانید کاراکتر جداکننده را با علامت تغییر دهید -د یا -حائل، جداکننده گزینه xargs
به طور پیش فرض، xargs با یک آرگومان در یک زمان کار می کند. اگر می خواهید دستور را اجرا کنید فرمان 2 با چندین آرگومان از خروجی دستور فرمان 1، سپس می توانید از -n یا -max-args گزینه xargs گاهی اوقات، باید به xargs بگویید که هر بار با یک آرگومان کار کند -n یا -max-args گزینه.
همچنین میتوانید رشتههای دیگری را به آرگومانهای ارسال شده به فرمان اضافه یا اضافه کنید فرمان 2 با استفاده از -من گزینه xargs
گزینه های زیادی برای xargs وجود دارد، اما این 3 مورد مهم ترین و مفیدترین آنها هستند. بنابراین، من فقط به این 3 آرگومان xargs در این مقاله می پردازم.
حرف زدن بس است بیایید چند نمونه را مرور کنیم.
مثال 1: ایجاد و حذف فایل های فهرست شده در یک فایل متنی
فرض کنید شما لیستی از نام فایل ها در یک فایل متنی دارید files.txt.
می توانید محتویات فایل متنی را مشاهده کنید files.txt همانطور که در تصویر زیر نشان داده شده است.
اکنون، میتوانید تمام فایلهای فهرست شده در آن را ایجاد کنید files.txt فایل متنی با استفاده از دست زدن به فرمان با xargs به شرح زیر است:
همانطور که می بینید، فایل ها همانطور که در لیست ذکر شده ایجاد می شوند files.txt.
حال، فرض کنید، میخواهید فایلهایی را که در فهرست فهرست شدهاند حذف کنید files.txt فایل متنی می توانید استفاده کنید rm فرمان با xargs به شرح زیر است:
فقط فایل های لیست شده در files.txt همانطور که در تصویر زیر می بینید، فایل حذف می شود.
این یک مثال بسیار ساده از xargs است.
مثال 2: STDOUT را به دستوراتی که Pipe را پشتیبانی نمی کنند هدایت کنید
می توانید STDOUT یک دستور را تغییر مسیر دهید فرمان 1 به عنوان STDIN یک دستور دیگر فرمان 2 اگر فرمان فرمان 2 از لوله لینوکس پشتیبانی می کند. اما اگر دستور از pipe پشتیبانی نمی کند، نمی توانید این کار را انجام دهید.
به عنوان مثال echo فرمان لوله را پشتیبانی نمی کند. بنابراین، دستور زیر نخواهد بود print هر چیزی که در تصویر زیر می بینید.
دستور xargs می تواند به شما در تغییر مسیر STDOUT of کمک کند فرمان 1 (در این مورد تاریخ) به STDIN از فرمان 2 (در این مورد echo) همانطور که در تصویر زیر می بینید.
مثال 3: تغییر جداکننده xargs
در اینجا، من یک رشته چاپ کرده ام 123-456-7890 (یک شماره تلفن ساختگی) با استفاده از xargs. همانطور که می بینید، کل خروجی به عنوان یک آرگومان واحد در نظر گرفته می شود و xargs آن را اجرا می کند echo فقط یکبار دستور دهید
در اینجا، من جداکننده را به تغییر داده ام – با استفاده از -د گزینه xargs همانطور که می بینید، خروجی 123-456-7890 اکنون به عنوان 3 آرگومان مختلف در نظر گرفته می شود 123، 456، و 7890.
مثال 4: اضافه کردن یا اضافه کردن آرگومان های xargs
می توانید رشته ای را به آرگومان ارسال شده به دستور اضافه کنید (به انتهای آرگومان اضافه کنید) یا رشته ای را اضافه کنید (به جلوی آرگومان اضافه کنید). فرمان 2 با استفاده از xargs قبل از اینکه روش انجام این کار را به شما نشان دهم، روش استفاده از آن را به شما نشان خواهم داد -من گزینه xargs
را -من گزینه xargs به شما امکان می دهد نمادی را برای آرگومان xargs تعریف کنید که به دستور ارسال می شود فرمان 2. درست مانند یک متغیر کار می کند.
مثلا،
در اینجا گزینه -I تعریف می کند {} به عنوان نمادی برای این استدلال که xargs در حال حاضر کار می کند روی. یک بار نماد {} تعریف شده است، از نماد می توان برای ارسال آرگومان به دستور استفاده کرد فرمان 2، که (نماد {}) با مقدار آرگومان جایگزین می شود.
حالا برای اضافه کردن رشته txt (مثلاً) برای هر آرگومان، می توانید از xargs به صورت زیر استفاده کنید:
به همین ترتیب، می توانید رشته را از قبل آماده کنید سلام (بیایید بگوییم) به هر استدلال به صورت زیر:
مثال 5: تغییر پسوند فایل های خاص
این یکی کمی مشکل است. اما من توضیح خواهم داد که چگونه کار می کند. نگران نباشید.
فرض کنید، شما چند فایل در فهرست کاری فعلی خود با پسوندهای مختلف فایل دارید. حالا، شما می خواهید همه آنها را به تغییر دهید png افزونه.
میتوانید پسوند فایلهای موجود در فهرست کاری فعلی خود را با xargs به png تغییر دهید:
همانطور که می بینید تمام پسوند فایل به png تغییر کرده است.
در اینجا xargs یک را شروع می کند bash زیر پوسته و اجرا می کند bash فرمان
اولین، FILE={} نماد را اختصاص می دهد {} مقدار، که نام فایل (مقدار آرگومان xargs) به است فایل متغیر پوسته
سپس، mv دستور برای تغییر پسوند فایل استفاده می شود.
را $FILE متغیر پوسته شامل نام فایل اصلی است.
${FILE%%.*} پسوند نام فایل (شامل کاراکتر .) را حذف می کند و سپس .png رشته به نام فایل حذف شده اضافه می شود.
xargs می تواند کارهای پیچیده تری انجام دهد. به آزمایش چیزهای جدید با xargs ادامه دهید. آسمان حد توست
اگر به کمک نیاز دارید روی xargs، شما می توانید مرد را بررسی کنید page xargs به شرح زیر است:
بنابراین، این روشی است که شما از xargs استفاده می کنید روی لینوکس. با تشکر از خواندن این مقاله.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 14:03:02