12 käytännön esimerkkiä Linux Xargs -komennosta aloittelijoille


Xargs on hieno komento, joka lukee tietovirrat tavallisesta syötteestä, luo sitten ja suorittaa komentorivit; mikä tarkoittaa, että se voi ottaa komennon ja antaa sen toisen komennon argumenttina. Jos komentoa ei ole määritetty, xargs suorittaa oletuksena kaikun. Monet neuvovat sitä myös lukemaan tietoja tiedostosta stdinin sijaan.

On useita tapoja, joilla xargs on hyödyllinen päivittäisessä komentorivin käytössä. Tässä artikkelissa selitämme 12 käytännön esimerkkiä Linux xargs -komennoista aloittelijoille.

1. Ensimmäinen esimerkki näyttää, kuinka kaikki .png -kuvat saadaan selville ja arkistoidaan tar-apuohjelmalla seuraavasti.

Tässä toimintokomento -print0 mahdollistaa koko tiedostopolun tulostamisen vakiotulosteelle, jota seuraa tyhjä merkki ja -0 xargs-lippu käsittelee tehokkaasti tilaa tiedostonimissä.

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

2. Voit myös muuntaa ls-komennon muti-line-lähdön yhdeksi riviksi käyttämällä xargs-tiedostoa seuraavasti.

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

3. Luo tiivis luettelo kaikista järjestelmän Linux-käyttäjätileistä seuraavalla komennolla.

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

4. Olettaen, että sinulla on luettelo tiedostoista ja haluat tietää rivien/sanojen/merkkien määrän kussakin luettelon tiedostossa, voit käyttää ls-komentoa ja xargsia tähän tarkoitukseen seuraavasti.

$ ls *upload* | xargs wc

5. Xaragsin avulla voit myös etsiä ja poistaa rekursiivisesti hakemiston, esimerkiksi seuraava komento poistaa rekursiivisesti DomTermin hakemistosta Lataukset.

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

6. Edellisen komennon tavoin voit myös löytää kaikki net_stats-nimiset tiedostot nykyisestä hakemistosta ja poistaa ne.

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

7. Kopioi seuraavaksi tiedosto xargs useisiin hakemistoihin kerralla; tässä esimerkissä yritämme kopioida tiedostoa.

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

8. Voit myös nimetä uudelleen nimeä -komennot yhdessä nimittäessäsi kaikki tietyn hakemiston tiedostot tai alihakemistot pieniksi kirjaimiksi seuraavasti.

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

9. Tässä on toinen hyödyllinen esimerkki xargs-sovelluksesta, se näyttää, kuinka kaikki tiedostot poistetaan hakemistosta paitsi yksi tai muutama tietyllä laajennuksella varustettu tiedosto.

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

10. Kuten aiemmin mainittiin, voit ohjeistaa xargs lukemaan tiedostot tiedostosta vakiosyötön sijaan käyttämällä -a -lippua kuvan mukaisesti.

$ xargs -a rss_links.txt

11. Voit ottaa sanatarkkuuden käyttöön käyttämällä -t -lippua, joka kehottaa xargsia tulostamaan komentorivin vakiovirheilmoitukseen ennen sen suorittamista.

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

12. Oletuksena xargs lopettaa/rajoittaa kohteet tyhjillä välilyönneillä. Voit käyttää -d -lipua asettamaan erottimen, joka voi olla yksittäinen merkki, C-tyylinen merkkikohta, kuten \n tai oktaali- tai heksadesimaalinen poistumiskoodi.

Lisäksi voit myös kysyä käyttäjältä, suoritetaanko kukin komentorivi ja luetaanko rivi päätelaitteesta, käyttämällä -p -lippua kuvan osoittamalla tavalla (kirjoita yksinkertaisesti y kyllä tai n ei).

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

Lisätietoja saat lukemalla xargs-man -sivun.

$ man xargs 

Se on nyt! Xargs on tehokas apuohjelma komentorivin luomiseen; se voi auttaa sinua siirtämään yhden komennon lähdön toisen komennon argumenttina käsittelyä varten. Tässä artikkelissa olemme selittäneet 12 käytännön esimerkkiä xargs-komennoista aloittelijoille. Jaa ajatuksiasi tai kysymyksiä meille alla olevan palautelomakkeen kautta.