12 praktinių Linux Xargs komandos pavyzdžių pradedantiesiems


Xargs yra puiki komanda, kuri nuskaito duomenų srautus iš standartinės įvesties, tada generuoja ir vykdo komandų eilutes; reiškia, kad jis gali priimti komandos išvestį ir perduoti ją kaip kitos komandos argumentą. Jei komanda nenurodyta, xargs pagal numatytuosius nustatymus vykdo echo. Daugelis taip pat nurodo jai skaityti duomenis iš failo, o ne stdin.

Yra keli būdai, kuriais xargs yra naudingas kasdien naudojant komandų eilutę. Šiame straipsnyje paaiškinsime 12 praktinių Linux xargs komandų pavyzdžių pradedantiesiems.

1. Pirmame pavyzdyje parodyta, kaip sužinoti visus .png vaizdus ir juos archyvuoti naudojant tar paslaugų programą, kaip nurodyta toliau.

Čia veiksmo komanda -print0 įgalina spausdinti visą failo kelią standartinėje išvestyje, po kurio yra nulinis simbolis, o -0 xargs vėliavėlė veiksmingai pašalina tarpą failų pavadinimuose.

find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. Taip pat galite konvertuoti muti-line išvestį iš komandos ls į vieną eilutę naudodami xargs, kaip nurodyta toliau.

ls -1 Pictures/tecmint/
ls -1 Pictures/tecmint/ | xargs

3. Norėdami sukurti kompaktišką visų sistemoje esančių „Linux“ naudotojų paskyrų sąrašą, naudokite šią komandą.

cut -d: -f1 < /etc/passwd | sort | xargs

4. Darant prielaidą, kad turite failų sąrašą ir norite sužinoti eilučių/žodžių/simbolių skaičių kiekviename sąrašo faile, galite naudoti komandą ls ir xargs šiam tikslui, kaip nurodyta toliau.

ls *upload* | xargs wc

5. „Xarags“ taip pat leidžia rasti ir rekursyviai pašalinti katalogą, pavyzdžiui, ši komanda rekursyviai pašalins DomTerm iš katalogo Atsisiuntimai.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. Panašiai kaip ir ankstesnėje komandoje, dabartiniame kataloge taip pat galite rasti visus failus, pavadintus net_stats, ir juos ištrinti.

find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. Tada naudokite xargs, kad nukopijuotumėte failą į kelis katalogus vienu metu; Šiame pavyzdyje mes bandome nukopijuoti failą.

echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. Taip pat galite naudoti komandą rasti, xargs ir pervardyti komandas, kad pervardytumėte visus failus ar pakatalogius tam tikrame kataloge mažosiomis raidėmis, kaip nurodyta toliau.

find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. Štai dar vienas naudingas xargs naudojimo pavyzdys. Jame parodyta, kaip ištrinti visus failus kataloge, išskyrus vieną ar kelis failus su nurodytu plėtiniu.

find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. Kaip minėta anksčiau, galite nurodyti xargs nuskaityti elementus iš failo, o ne įvesti standartinę įvestį, naudodami vėliavėlę -a, kaip parodyta.

xargs -a rss_links.txt

11. Galite įjungti daugiažodiškumą naudodami vėliavėlę -t, kuri nurodo xargs atspausdinti komandų eilutę standartinėje klaidos išvestyje prieš ją vykdant.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. Pagal numatytuosius nustatymus xargs užbaigia/atskiria elementus naudodama tuščius tarpus. Galite naudoti vėliavėlę -d, kad nustatytumėte skyriklį, kuris gali būti vienas simbolis, C stiliaus simbolio pabėgimas, pvz., \n, arba aštuntainis arba šešioliktainis pabėgimo kodas.

Be to, taip pat galite paraginti vartotoją, ar paleisti kiekvieną komandų eilutę ir nuskaityti eilutę iš terminalo, naudodami vėliavėlę -p, kaip parodyta (tiesiog įveskite y taip arba n, jei ne).

echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

Norėdami gauti daugiau informacijos, skaitykite xargs vadovo puslapį.

man xargs 

Tai kol kas! Xargs yra galingas įrankis komandų eilutei kurti; tai gali padėti perduoti vienos komandos išvestį kaip kitos komandos argumentą apdorojimui. Šiame straipsnyje paaiškinome 12 praktinių xargs komandų pavyzdžių pradedantiesiems. Pasidalykite mintimis ar klausimais su mumis naudodami toliau pateiktą atsiliepimų formą.