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:
|
-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:
|
-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
- Aby użyć komendy dla plików, których nazwy są wymienione w pliku, wpisz:
Jeślicfilesplik zawiera następujący tekst:xargs lint -a <cfiles
Komendy xargs konstruują i uruchamia następującą komendę: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 putobj.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.lint -a main.c readit.c gettoken.c . . . lint -a getisx.c getprp.c getpid.c . . . lint -a fltadd.c fltmult.c fltdiv.c . . .
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 <cfilesJeśli wszystkie nazwy plików wcfilesPlik nie mieści się w jednym wierszu komend, w komendzie xargs zostanie wyświetlony komunikat o błędzie. - Aby skonstruować komendy zawierające pewną liczbę nazw plików, wpisz:Ta sekwencja komend konstruuje i uruchamia komendy diff , które zawierają dwie nazwy plików (-n 2):
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 .diff starting chap1 diff concepts chap2 diff writing chap3
- Aby wstawić nazwy plików do środka wiersza komend, wpisz: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
- Aby uruchomić komendę w przypadku plików wybranych pojedynczo, wpisz: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 ?...
- Aby skonstruować komendę, która zawiera określoną liczbę argumentów i wstawić te argumenty w środku wiersza komend, wpisz:
Jeśli w bieżącym katalogu znajdują się pliki chap1 do chap10, utworzone dane wyjściowe będą następujące:ls | xargs -n6 | xargs -I{} echo {} - some files in the directory
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 . |