Zoeken op website

12 praktische voorbeelden van Linux Xargs Command voor beginners


Xargs is een geweldige opdracht die gegevensstromen uit standaardinvoer leest en vervolgens opdrachtregels genereert en uitvoert; wat betekent dat het de uitvoer van een commando kan overnemen en dit kan doorgeven als argument van een ander commando. Als er geen opdracht is opgegeven, voert xargs standaard echo uit. Velen van u geven hem ook de opdracht om gegevens uit een bestand te lezen in plaats van uit stdin.

Er zijn verschillende manieren waarop xargs nuttig is bij het dagelijks gebruik van de opdrachtregel. In dit artikel zullen we 12 praktische Linux xargs-opdrachtvoorbeelden voor beginners uitleggen.

1. Het eerste voorbeeld laat zien hoe u alle .png-afbeeldingen kunt achterhalen en deze als volgt kunt archiveren met het tar-hulpprogramma.

Hier maakt het actiecommando -print0 het afdrukken van het volledige bestandspad op de standaarduitvoer mogelijk, gevolgd door een nulteken en de xargs-vlag -0 die effectief omgaat met ruimte in bestandsnamen.

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

2. U kunt ook de uitvoer van meerdere regels van het ls-commando naar een enkele regel converteren met behulp van xargs, als volgt.

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

3. Gebruik de volgende opdracht om een compacte lijst van alle Linux-gebruikersaccounts op het systeem te genereren.

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

4. Ervan uitgaande dat u een lijst met bestanden heeft en u het aantal regels/woorden/tekens in elk bestand in de lijst wilt weten, kunt u de opdracht ls gebruiken en xargs hiervoor als volgt.

ls *upload* | xargs wc

5. Met Xarags kunt u ook een map zoeken en recursief verwijderen. Met de volgende opdracht wordt bijvoorbeeld DomTerm recursief verwijderd in de map Downloads.

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

6. Net als bij het vorige commando kunt u ook alle bestanden met de naam net_stats in de huidige map vinden en deze verwijderen.

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

7. Gebruik vervolgens xargs om een bestand tegelijk naar meerdere mappen te kopiëren; in dit voorbeeld proberen we het bestand te kopiëren.

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

8. U kunt ook de opdrachten find, xargs en hernoemen samen gebruiken om alle bestanden of submappen in een bepaalde map als volgt te hernoemen naar kleine letters.

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

9. Hier is nog een nuttig gebruiksvoorbeeld voor xargs, het laat zien hoe je alle bestanden in een map kunt verwijderen, behalve één of enkele bestanden met een bepaalde extensie.

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

10. Zoals eerder vermeld, kunt u xargs de opdracht geven om items uit een bestand te lezen in plaats van standaardinvoer, met behulp van de vlag -a, zoals weergegeven.

xargs -a rss_links.txt

11. Je kunt breedsprakigheid inschakelen met de vlag -t, die xargs vertelt om de opdrachtregel af te drukken op de standaardfoutuitvoer voordat deze wordt uitgevoerd.

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

12. xargs beëindigt/scheidt items standaard met spaties. U kunt de vlag -d gebruiken om het scheidingsteken in te stellen. Dit kan een enkel teken, een karakter-escape in C-stijl, zoals \n, of een octale of hexadecimale escape-code.

Bovendien kunt u de gebruiker ook vragen of hij elke opdrachtregel moet uitvoeren en een regel van de terminal moet lezen, met behulp van de vlag -p zoals weergegeven (typ eenvoudigweg y voor ja of n voor nee).

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

Lees voor meer informatie de xargs manpagina.

man xargs 

Dat is het voor nu! Xargs is een krachtig hulpprogramma voor het bouwen van een opdrachtregel; het kan u helpen de uitvoer van één opdracht door te geven als argument voor een andere opdracht voor verwerking. In dit artikel hebben we 12 praktische xargs-opdrachtvoorbeelden voor beginners uitgelegd. Deel uw mening of vragen met ons via het onderstaande feedbackformulier.