Komenda xargs

Działanie

Konstruuje listy parametrów i uruchamia komendy.

Składnia

xargs [-p t x ] [-e [Łańcuch EOFString]] [-E Łańcuch EOFString] [-i [ReplaceString]] [-I ReplaceString | -L Liczba | -n liczba] [ -l [ liczba]] [-s wielkość] [komenda [argument ... ]]

Uwaga: Nie należy umieszczać spacji między małymi flagami i parametrem.

Opis

Wygenerowana długość wiersza komend jest sumą wielkości (w bajtach) komendy Command (komenda) i każdego argumentu traktowanego jako łańcuchy, w tym znaku końca bajtu o wartości NULL dla każdego z tych łańcuchów. Komenda xargs ogranicza długość wiersza komend. Po uruchomieniu skonstruowanego wiersza komend połączone listy Argument i środowiska nie mogą przekraczać ARG_MAX bajtów. W tym ograniczeniu, jeśli nie zostanie podana opcja -n lub -s , domyślna długość wiersza komend będzie mieć co najmniej wartość określoną przez parametr LINE_MAX.

Flagi

Element Opis
-e[łańcuch EOFString] Przestarzała flaga. Użyj opcji -E .

Używa parametru EOFString jako logicznego łańcucha EOF. Jeśli nie zostanie podana opcja -e lub -E , dla logicznego łańcucha EOF przyjmowana jest podkreślenie (_). Jeśli parametr EOFString nie zostanie określony, funkcja logicznego łańcucha EOF jest wyłączona, a znaki podkreślenia są wykonywane dosłownie. Komenda xargs odczytuje dane ze standardowego wejścia, dopóki nie zostanie osiągnięta wartość EOF lub podany łańcuch.

-E Łańcuch EOFString Określa logiczny łańcuch EOF, który ma zastąpić domyślny znak podkreślenia (_). Komenda xargs odczytuje standardowe wejście, dopóki nie zostanie osiągnięta wartość EOF lub podany łańcuch.
-i [ReplaceString] Przestarzała flaga. Użyj opcji -I (wielkie litery i).

Jeśli parametr ReplaceString nie zostanie określony, zostanie użyty łańcuch {}.

Uwaga: -I (wielkie litery i), i, -L (wielkie litery l), Opcje li -n wykluczają się wzajemnie. Podana ostatnia flaga staje się skuteczna.

-I ReplaceString (Wielkie i). Wstawia każdy wiersz standardowego wejścia jako argument dla parametru Command , wstawiając go w argumencie Argument dla każdego wystąpienia elementu ReplaceString. Funkcji ReplaceStrings nie można używać w więcej niż 5 argumentach. Puste znaki na początku każdej standardowej linii wejściowej są ignorowane. Każdy argument Argument może zawierać co najmniej jeden element ReplaceStrings , ale nie może być większy niż 255 bajtów. Opcja -I powoduje również włączenie opcji -x .

Opcja -I (wielkie litery i) oznacza wartość -L1. Dlatego tylko jedna standardowa linia wejściowa może zostać zastąpiona jako argument w danym momencie. Jeśli zastępowany łańcuch pojawia się więcej niż jeden raz w parametrze komendy, dla każdego wystąpienia zastępowanego łańcucha zastępowany jest ten sam standardowy wiersz wprowadzania.

Uwaga: -I (wielkie litery i), i, -L (wielkie litery l), Opcje li -n wykluczają się wzajemnie. Podana ostatnia flaga staje się skuteczna.

-l [liczba] (Małe Litery L). Przestarzała flaga. Użyj opcji -L .

Jeśli parametr Liczba nie zostanie określony, zostanie użyta wartość 1. Opcja -l włącza również opcję -x .

Uwaga: -I (wielkie litery i), i, -L (wielkie litery l), -l, i opcje -n wykluczają się wzajemnie. Podana ostatnia flaga staje się skuteczna.

-L liczba Uruchamia parametr Command z określoną liczbą niepustych wierszy parametrów odczytanych ze standardowego wejścia. Ostatnie wywołanie parametru Komenda może mieć mniejszą liczbę wierszy parametrów, jeśli pozostało mniej niż podana wartość Liczba . Linia kończy się pierwszym znakiem nowego wiersza, chyba że ostatnim znakiem linii jest spacja lub tabulacja. Znak spacji na końcu wskazuje kontynuację następnego niepustego wiersza.

Odczytuje wiersze Liczba ze standardowego wejścia i umieszcza je na końcu wiersza komend.

Uwaga: -I (wielkie litery i), i, -L (wielkie litery l), -l, i opcje -n wykluczają się wzajemnie. Podana ostatnia flaga staje się skuteczna.

-n liczba Uruchamia parametr Command , używając jak największej liczby standardowych argumentów wejściowych, do maksymalnej wartości określonej przez parametr Number .

Odczytuje maksymalną liczbę argumentów Liczba ze standardowego wejścia i umieszcza je na końcu wiersza komend.

Komenda xargs używa mniejszej liczby argumentów, jeśli:
  • Skumulowana długość wiersza komend przekracza liczbę bajtów określoną za pomocą opcji -s Wielkość .
  • Ostatnia iteracja ma mniej wartości niż wartość określona przez argument Liczba , ale nie jest równa zero, pozostałe argumenty.

    Uwaga: -I (wielkie litery i), i, -L (wielkie litery l), -l, i opcje -n wykluczają się wzajemnie. Podana ostatnia flaga staje się skuteczna.

-P Określa, czy należy uruchomić parametr Komenda . Wyświetla on konstruowaną linię komend, po której następuje?...Pytanie (znak zapytania, wielokropek). Wprowadź odpowiedź potwierdzania specyficzną dla ustawień narodowych, aby uruchomić parametr Komenda . Każda inna odpowiedź powoduje, że komenda xargs pominie to konkretne wywołanie parametru. Zostanie wyświetlone pytanie o każde wywołanie. Opcja -p włącza również opcję -t .
-s wielkość Ustawia maksymalną łączną wielkość skonstruowanej linii Command . Parametr Wielkość musi być dodatnią liczbą całkowitą. Użyto mniejszej liczby argumentów, jeśli:
  1. Łączna liczba argumentów przekracza wartość określoną za pomocą opcji -n .
  2. Łączna liczba wierszy przekracza te, które zostały określone za pomocą opcji -L lub -l (Małe L).
  3. Wartość EOF jest osiągana przed zgromadzonym liczbą bajtów określoną przez parametr Wielkość .
-t Włącza tryb śledzenia i oddaje wiersz Komenda skonstruowany do standardowego wyjścia błędów przed uruchomieniem.
-X Zatrzymuje uruchamianie komendy xargs , jeśli dowolna linia Command jest większa niż liczba bajtów określona przez opcję -s Wielkość . Ta opcja -x jest włączona, jeśli zostanie podana opcja -I (Wielkie i) lub -l (Mała L). Jeśli nie zostanie podana opcja -i, -I (Wielkie i), -l (Małe L), -Llub-n , Łączna długość wiersza komend Command musi być podana w limicie określonym przez opcję -s Wielkość .

Status wyjścia

Ta komenda zwraca następujące wartości wyjścia:

Element Opis
0 Wszystkie wywołania parametru Komenda zwróciły status wyjścia 0.
1-125 Wiersz komend spełniający określone wymagania nie mógł zostać zmontowany, co najmniej jedna z wywołań parametru Komenda zwróciła status wyjścia niezerowego lub wystąpił inny błąd.
126 Komenda została znaleziona, ale nie można jej wywołać.
127 Nie można znaleźć komendy Command .

Jeśli wiersz komend spełniający określone wymagania nie może zostać zmontowany, komenda nie może zostać wywołana, wywołanie komendy zostaje zakończone przez sygnał lub wywołanie wyjścia komend ze statusem wyjścia 255. Komenda xargs zapisze komunikat diagnostyczny i zakończy działanie bez przetwarzania pozostałych danych wejściowych.

Przykłady

  1. Aby użyć komendy dla plików, których nazwy są wymienione w pliku, wpisz:
    xargs lint -a <cfiles
    Jeślicfilesplik zawiera następujący tekst:
    main.c readit.c
    gettoken.c
    putobj.c
    Komendy xargs konstruują i uruchamia następującą komendę:
    lint -a main.c readit.c gettoken.c putobj.c
    JeślicfilesPlik zawiera więcej nazw plików niż jest on dopasowany do pojedynczej linii komend powłoki (do LINE_MAX), komenda xargs uruchamia komendę lint z nazwami plików pasujące do tej komendy. Następnie konstruuje i uruchamia inną komendę lint , używając pozostałych nazw plików. W zależności od nazw podanych wcfilesKomendy mogą wyglądać następująco:
    lint -a main.c readit.c gettoken.c . . .
    lint -a getisx.c getprp.c getpid.c . . .
    lint -a fltadd.c fltmult.c fltdiv.c . . .
    Ta sekwencja komend nie jest taka sama, jak uruchomienie komendy lint z wszystkimi nazwami plików. Komenda lint sprawdza odwołania między plikami. W tym przykładzie nie można jednak sprawdzić, czymain.corazfltadd.cplików lub między dowolnymi dwoma plikami wymienionymi w oddzielnych wierszach komend.

    Z tego powodu użytkownik może uruchomić komendę tylko wtedy, gdy wszystkie nazwy plików pasują do jednej linii. Aby określić tę opcję w komendzie xargs , należy użyć opcji -x , wpisując:

    xargs  -x  lint -a <cfiles
    Jeśli wszystkie nazwy plików wcfilesPlik nie mieści się w jednym wierszu komend, w komendzie xargs zostanie wyświetlony komunikat o błędzie.
  2. Aby skonstruować komendy zawierające pewną liczbę nazw plików, wpisz:
    xargs  -t  -n  2 diff <<EOF
    starting chap1 concepts chap2 writing
    chap3
    EOF
    Ta sekwencja komend konstruuje i uruchamia komendy diff , które zawierają dwie nazwy plików (-n 2):
    diff starting chap1
    diff concepts chap2
    diff writing chap3
    Opcja -t powoduje, że komenda xargs wyświetla każdą komendę przed jej uruchomieniem, dzięki czemu można zobaczyć, co się dzieje. :NONE.<<EOFzapewnienia odpornościEOFznaki zgodne ze wzorcem definiują tutaj dokument, który używa tekstu wprowadzonego przed wierszem końcowym jako standardowe wejście dla komendy xargs .
  3. Aby wstawić nazwy plików do środka wiersza komend, wpisz:
    ls | xargs  -t  -I  {} mv {} {}.old
    Ta sekwencja komend zmienia nazwę wszystkich plików w bieżącym katalogu przez dodanie .oldna końcu każdej nazwy. Opcja -I powoduje, że komenda xargs wstaw każdy wiersz z listem katalogów ls , w którym pojawiają się {} (nawiasy klamrowe). Jeśli bieżący katalog zawiera plikichap1,chap2, orazchap3, to konstruuje następujące komendy:
    mv chap1 chap1.old
    mv chap2 chap2.old
    mv chap3 chap3.old
  4. Aby uruchomić komendę w przypadku plików wybranych pojedynczo, wpisz:
    ls | xargs  -p  -n  1 ar r lib.a
    Ta sekwencja komend umożliwia wybranie plików, które mają zostać dodane do lib.a biblioteka.Opcja -p powoduje wyświetlenie komendy xargs w celu wyświetlenia każdej komendy ar , którą konstruuje, oraz o pytanie, czy ma być ona uruchamiana. Typy, aby uruchomić komendę. Jeśli nie chcesz uruchamiać tej komendy, naciśnij dowolny inny klawisz.

    Zostanie wyświetlony komunikat podobny do następującego:

    ar r lib.a chap1 ?...
    ar r lib.a chap2 ?...
    ar r lib.a chap3 ?... 
  5. Aby skonstruować komendę, która zawiera określoną liczbę argumentów i wstawić te argumenty w środku wiersza komend, wpisz:
    ls | xargs -n6 | xargs -I{} echo {} - some files in the directory
    Jeśli w bieżącym katalogu znajdują się pliki chap1 do chap10, utworzone dane wyjściowe będą następujące:
    chap1 chap2 chap3 chap4 chap5 chap6 - some files in the directory
    chap7 chap8 chap9 chap10 - some files in the directory

Plik

Element Opis
/usr/bin/xargs Zawiera komendę xargs .