Xargs
xargs - Konstruera och exekvera kommandon från standardinput
`xargs` är ett kraftfullt verktyg som läser data från standardinput och utför ett eller flera kommandon baserat på inputen. Det används ofta i kombination med andra kommandon i Unix-baserade operativsystem, inklusive Linux och macOS.
NAMN
xargs - Konstruera och exekvera kommandon från standardinput
SYNOPSIS
xargs [alternativ] [kommando [initiala-argument]]
BESKRIVNING
`xargs` läser element från standardinput, separerade av blanksteg (som kan vara skyddade med dubbla eller enkla citationstecken eller en backslash) eller newlines, och utför det angivna kommandot en eller flera gånger med de lästa elementen som argument.
ALTERNATIV
- `-0`, `--null` - Element avgränsas med nullbyte, inte whitespace.
- `-a`, `--arg-file=fil` - Läs element från filen istället för standardinput.
- `-d`, `--delimiter=tecken` - Ange ett specifikt avgränsningstecken.
- `-E`, `--eof=sträng` - Ange en sträng som indikerar slutet av input.
- `-I`, `--replace=sträng` - Ersätt `sträng` i de initiala argumenten med element från input.
- `-L`, `--max-lines=antal` - Använd högst `antal` rader av input för varje kommandoutförande.
- `-n`, `--max-args=antal` - Använd högst `antal` argument per kommandoutförande.
- `-P`, `--max-procs=antal` - Antal samtidiga processer.
- `-s`, `--max-chars=antal` - Maximalt antal tecken per kommandoradsutrop.
- `-t`, `--verbose` - Skriv ut kommandot på standardoutput före exekvering.
- `-x`, `--exit` - Avsluta om storleken (avgränsad av `-s`) överskrids.
EXEMPEL
Nedan är några exempel på hur `xargs` kan användas i skript och kommandon:
Hitta och radera tomma filer
find /path -type f -empty | xargs -I {} rm {}
Detta skript hittar tomma filer och raderar dem.
Sätta rättigheter på filer
find /path -type f -print0 | xargs -0 chmod 644
Använder `find` för att lista filer och `xargs` för att ändra rättigheter.
Konvertera bilder
ls *.png | xargs -I {} convert {} {}.jpg
Konverterar alla PNG-bilder i mappen till JPG-format.
Skapa en komprimerad tar av filer
find /path -type f -name '*.log' -print0 | xargs -0 tar czf logs.tar.gz
Skapar en komprimerad tar-fil av alla log-filer.
Kör en kommando för flera användare
echo user1 user2 user3 | xargs -n1 -I {} sudo -u {} whoami
Kör `whoami` som olika användare.
SKILLNADER MELLAN macOS OCH LINUX
`xargs` är tillgängligt både på macOS och Linux, men vissa av dess alternativ kan variera eller bete sig olika:
- macOS: Stödjer inte `-d` för att ange avgränsare. Använd istället `-0` eller hantera input med `awk` eller `sed` för speciella avgränsare.
- Linux: Stöder bredare variationer av argument och är generellt mer flexibelt med avseende på alternativ som `-d`.
FELSÖKNING
Om `xargs` inte beter sig som förväntat, kontrollera:
- Syntax och stavning i dina kommandon.
- Rättigheter och behörigheter för de filer och kommandon som används.
- Specifika alternativ och deras stöd på din plattform.
FÖRFATTARE
`xargs` utvecklades ursprungligen av AT&T Bell Laboratories. Vidareutveckling har skett inom ramen för GNU-projektet.
KOLOFON
Denna manual är baserad på GNU Coreutils dokumentation. För mer information, se officiella [GNU Coreutils Manual](https://www.gnu.org/software/coreutils/manual).
KÄLLOR
- [GNU Coreutils - xargs documentation](https://www.gnu.org/software/coreutils/manual/html_node/xargs-invocation.html)
- [man7.org - xargs](https://man7.org/linux/man-pages/man1/xargs.1.html)