Xargs

Från Wiki.linux.se
Version från den 11 juli 2024 kl. 11.56 av Admin (diskussion | bidrag)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

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