دستهبندی:#کاربردی #آموزشی #xargs
خب بریم یکم با دستور xargs که یکی از باحال ترین دستورات خط فرمانی برای استفاده از دستوراتی که اجازه pipe کردن بهتون نمیدن آشنا بشیم.
خب اصلأ Xargs مخفف چیه؟🤔
(extended arguments)
نحوه کار باهاش
command1 | xargs command2
مثال اول: تو دستور پایین میبینید که ls قابلیت pipe کردن نداره. :(
ls | ls
میایم و پاس میدیم به xargs ،
میبینیم که یه فلگ I هست که مشخص میکنه که جایگشتمون چی باشه.
جاش هر چیزی میتونیم بزاریم ولی خب این مرسوم تره.
دستور xargs میاد و دستور جلوش رو برای هر خط از خروجی ls ران میکنه.
ls | xargs -I {} ls "/home/$USER/{}"البته ما میدونیم که خود ls هم میتونه حرکتی شبیه این رو بزنه.
ls *
ولی خب جاهایی هست که چنین چیزی رو نداریم.
مثلا تو دایرکتوری میخواید یه فایل از 1 تا 1000 درست کنید.
seq 1000 | xargs -I {} touch {}.txtیا حتی تغییر نام بدید.
ls | cut -d. -f1 | xargs -I {} mv {}.txt {}.textیا حتی فایل ها رو دیلیت کنید.
find . -type f -name "*.text" | xargs rm
خود find هم قابلیتی داره که اجازه اجرای دستوری برای هر کدوم از نتایج جستجو رو داره ولی به سرعت xargs نمیرسه.
find . -type f -name "*.txt" -exec rm {} \;اینم یه ویدیو کامل تر
Source
@LinFAQ | @LinAcademy