Provided by: manpages-pl_4.13-4_all 

NAZWA
xargs - wykonaj polecenie z argumentami pobranymi ze standardowego wejścia
SKŁADNIA
xargs [options] [command [initial-arguments]]
OPIS
Ta strona opisuje wersję GNU programu xargs. xargs czyta ze standardowego wejścia listę elementów
rozdzielonych spacjami (argumenty je zawierające mogą być ujęte w pojedyncze lub podwójne cudzysłowy albo
spacje w argumentach mogą być poprzedzone przez odwrotne ukośniki) lub znakami nowej linii. Następnie
wykonywane jest polecenie (domyślnie /bin/echo) jeden lub więcej razy z argumentami-początkowymi, po
których następują argumenty przeczytane ze standardowego wejścia. Puste linie ze standardowego wejścia są
ignorowane.
The command line for command is built up until it reaches a system-defined limit (unless the -n and -L
options are used). The specified command will be invoked as many times as necessary to use up the list
of input items. In general, there will be many fewer invocations of command than there were items in the
input. This will normally have significant performance benefits. Some commands can usefully be executed
in parallel too; see the -P option.
Ponieważ nazwy plików pod Uniksem mogą zawierać spacje i znaki nowej linii, to domyślne zachowanie jest
często problematyczne: xargs niepoprawnie przetwarza pliki zawierające powyższe znaki. W takich
sytuacjach lepiej jest używać opcji -0, co zapobiega takim problemom. Podczas używania tej opcji należy
się upewnić, że program, który przetwarza wejście dla xargs także używa znaku null jako separatora. Jeśli
na przykład tym programem jest GNU find, to odpowiednia opcja to -print0.
Jeśli uruchomione polecenia zakończy się z kodem 255, to xargs natychmiast przerwie swoje działanie bez
czytania dalszego wejścia. Jeśli się to zdarzy, to na standardowym wyjściu błędów wypisywany jest
komunikat błędu.
OPCJE
-0, --null
Nazwy plików wejściowych są zakończone znakiem null zamiast spacją, a cudzysłowy i odwrotne
ukośniki nie mają specjalnego znaczenia (wszystkie znaki są brane dosłownie). Łańcuch końca pliku
jest traktowany jak każdy inny. Opcja jest użyteczna, gdy argumenty mogą zawierać białe znaki,
cudzysłowy, apostrofy lub odwrotne ukośniki. Ta opcja może być użyta do pobrania argumentów od
programu GNU find uruchomionego z opcją -print0.
-a file, --arg-file=file
Czyta elementy z podanego pliku file zamiast ze standardowego wejścia. Jeśli ta opcja jest
używane, to standardowe wejście nie jest zmieniane podczas uruchamiania poleceń. W przeciwnym
wypadku standardowe wejście jest przekierowywane z /dev/null.
--delimiter=delim, -d delim
Input items are terminated by the specified character. The specified delimiter may be a single
character, a C-style character escape such as \n, or an octal or hexadecimal escape code. Octal
and hexadecimal escape codes are understood as for the printf command. Multibyte characters are
not supported. When processing the input, quotes and backslash are not special; every character
in the input is taken literally. The -d option disables any end-of-file string, which is treated
like any other argument. You can use this option when the input consists of simply
newline-separated items, although it is almost always better to design your program to use --null
where this is possible.
-E eof-str
Nadaje łańcuchowi końca pliku wartość eof-str. Jeżeli ciąg oznaczający koniec pliku pojawi się w
jednej z linii wejściowych, reszta danych jest ignorowana. Jeśli nie użyto opcji -E, ani -e, to
łańcuch końca pliku nie jest używany.
-e[eof-str], --eof[=eof-str]
Opcja jest synonimem opcji -E. Należy zamiast niej używać opcji -E, ponieważ jest zgodna z
POSIX-em, podczas gdy ta opcja — nie jest. Jeśli pominięto eof-str, to łańcuch końca pliku nie
jest używany. Jeśli nie podano ani opcji -E, ani opcji -e, to łańcuch końca pliku nie jest
używany.
-I replace-str
Zastępuje wszystkie wystąpienia replace-str w początkowych-argumentach argumentami przeczytanym ze
standardowego wejścia. Ponadto, niecytowane odstępy nie separują argumentów, zamiast nich
separatorem jest znak nowej linii. Automatycznie włączane są opcje -x oraz -L 1.
-i[replace-str], --replace[=replace-str]
This option is a synonym for -Ireplace-str if replace-str is specified. If the replace-str
argument is missing, the effect is the same as -I{}. This option is deprecated; use -I instead.
-L max-lines
Używa co najwyżej max-lines niepustych linii danych wejściowych na każdy wiersz poleceń. Spacje na
końcu linii powodują, że jest do niej dołączana następna linia. Automatycznie włączana jest opcja
-x.
-l[max-lines], --max-lines[=max-lines]
Synonim opcji -L. W przeciwieństwie do -L argument max-lines jest opcjonalny; jeśli nie jest
podany to jego wartością domyślną jest jeden. Opcja -l jest przestarzała ponieważ standard POSIX
wymienia -L zamiast niej.
-n max-args, --max-args=max-args
Używa co najwyżej max-args argumentów na każdy wiersz poleceń. Może zostać użytych mniej
argumentów niż max-args, jeśli zostanie przekroczony ich rozmiar (patrz opcja -s), chyba że podana
jest opcja -x, w którym to przypadku działanie programu xargs zostanie zakończone.
-P max-procs, --max-procs=max-procs
Run up to max-procs processes at a time; the default is 1. If max-procs is 0, xargs will run as
many processes as possible at a time. Use the -n option or the -L option with -P; otherwise
chances are that only one exec will be done. While xargs is running, you can send its process a
SIGUSR1 signal to increase the number of commands to run simultaneously, or a SIGUSR2 to decrease
the number. You cannot increase it above an implementation-defined limit (which is shown with
--show-limits). You cannot decrease it below 1. xargs never terminates its commands; when asked
to decrease, it merely waits for more than one existing command to terminate before starting
another.
Please note that it is up to the called processes to properly manage parallel access to shared
resources. For example, if more than one of them tries to print to stdout, the output will be
produced in an indeterminate order (and very likely mixed up) unless the processes collaborate in
some way to prevent this. Using some kind of locking scheme is one way to prevent such problems.
In general, using a locking scheme will help ensure correct output but reduce performance. If you
don't want to tolerate the performance difference, simply arrange for each process to produce a
separate output file (or otherwise use separate resources).
-o, --open-tty
Reopen stdin as /dev/tty in the child process before executing the command. This is useful if you
want xargs to run an interactive application.
-p, --interactive
Prosi użytkownika o potwierdzenie przed uruchomieniem każdego wiersza poleceń i przeczytaniem
danych z terminala. Uruchamia wiersz poleceń tylko wtedy, gdy odpowiedź zaczyna się od "y" lub
"Y". Automatycznie włącza opcję -t.
--process-slot-var=nazwa
Set the environment variable name to a unique value in each running child process. Values are
reused once child processes exit. This can be used in a rudimentary load distribution scheme, for
example.
-r, --no-run-if-empty
Jeżeli w danych ze standardowego wejścia nie znajdują się znaki inne niż spacje, polecenie nie
jest uruchamiane. Normalnie polecenie jest uruchamiane jednorazowo, nawet gdy nie odczytano
żadnych danych. Ta opcja jest rozszerzeniem GNU.
-s max-chars, --max-chars=max-chars
Use at most max-chars characters per command line, including the command and initial-arguments and
the terminating nulls at the ends of the argument strings. The largest allowed value is
system-dependent, and is calculated as the argument length limit for exec, less the size of your
environment, less 2048 bytes of headroom. If this value is more than 128KiB, 128Kib is used as
the default value; otherwise, the default value is the maximum. 1KiB is 1024 bytes. xargs
automatically adapts to tighter constraints.
--show-limits
Wyświetla ograniczenia na długość linii wiersza poleceń, które są ustanawiane przez system
operacyjny, przez xargs w przypadku rozmiaru wewnętrznego bufora lub przez opcję -s. Aby xargs nie
zrobił nic poza wyświetleniem ograniczeń, jego wejście powinno być przekierowane z /dev/null (i
być może powinna być podana opcja --no-run-if-empty).
-t, --verbose
Wiersz poleceń jest wypisywany na standardowe wyjście błędów przed wykonaniem polecenia.
-x, --exit
Kończy działanie programu, jeżeli rozmiar zostanie przekroczony (patrz opcja -s).
--help Podaje wszystkie opcje programu xargs i kończy działanie.
--version
Wypisuje numer wersji xargs i kończy działanie programu.
The options --max-lines (-L, -l), --replace (-I, -i) and --max-args (-n) are mutually exclusive. If
some of them are specified at the same time, then xargs will generally use the option specified last on
the command line, i.e., it will reset the value of the offending option (given before) to its default
value. Additionally, xargs will issue a warning diagnostic on stderr. The exception to this rule is
that the special max-args value 1 ('-n1') is ignored after the --replace option and its aliases -I and
-i, because it would not actually conflict.
PRZYKŁADY
find /tmp -name core -type f -print | xargs /bin/rm -f
Wyszukuje a następnie usuwa pliki o nazwie core w katalogu /tmp i jego podkatalogach. Proszę zauważyć, że
będzie to działać niepoprawnie jeśli którakolwiek z nazw plików zawiera znaki nowej linii lub spacji.
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
Wyszukuje a następnie usuwa pliki o nazwie core w katalogu /tmp i jego podkatalogach. Nazwy plików są
przetwarzane w taki sposób, że nazwy plików lub katalogów zawierające znaki spacji lub nowej linii są
poprawnie obsługiwane.
find /tmp -depth -name core -type f -delete
Wyszukuje a następnie usuwa pliki o nazwie core w katalogu /tmp i jego podkatalogach. Robi to jednak w
sposób bardziej efektywny niż w poprzednim przykładzie (ponieważ nie używa fork(2) i exec(2), żeby
uruchomić rm i nie potrzebuje dodatkowego procesu xargs).
cut -d: -f1 < /etc/passwd | sort | xargs echo
Tworzy zwięzła listę wszystkich użytkowników systemu.
KOD ZAKOŃCZENIA
xargs zwraca następujące kody wyjścia:
0 if it succeeds
123 if any invocation of the command exited with status 1-125
124 if the command exited with status 255
125 if the command is killed by a signal
126 if the command cannot be run
127 if the command is not found
1 if some other error occurred.
Kody zakończenia większe od 128 są używane przez powłokę do wskazania, że program został zabity przez
sygnał.
ZGODNOŚĆ ZE STANDARDAMI
Według stanu na wersję 4.2.9 programu GNU xargs, domyślnie xargs nie używa logicznego znacznika końca
pliku. Standard POSIX (IEEE Std 1003.1, edycja 2004) na to pozwala.
Opcje -l i -i pojawiają się w wersji standardu POSIX z roku 1997, ale brak ich w wersji z roku 2004.
Dlatego powinno się używać zamiast nich opcji - odpowiednio - -L i -I.
The -o option is an extension to the POSIX standard for better compatibility with BSD.
Standard POSIX pozwala implementacjom na stosowanie limitu rozmiaru argumentów funkcji exec. Limit ten
może wynosić tylko 4096 bajtów, włączając w to rozmiar środowiska. Przenośne skrypty nie mogą polegać na
tym, że większa wartość jest obsługiwana. Jednakże nie znamy żadnej implementacji, w której to
ograniczenie jest tak małe. Można użyć opcja --show-limits, aby wyświetlić ograniczenia mające
zastosowanie do bieżącego systemu.
BŁĘDY
Nie jest możliwe używanie xargs w sposób całkowicie bezpieczny, ponieważ zawsze istnieje dziura czasowa
pomiędzy utworzeniem listy plików wejściowych i użyciem tej listy przez polecenia, które xargs wykonuje.
Jeśli inni użytkownicy mają dostęp do systemu, to mogą zmienić stan systemu plików podczas tej dziury
czasowej, tak żeby wymusić na poleceniach uruchomianych przez xargs wykonywanie akcji na plikach, które
nie były zamierzone. Bardziej szczegółową dyskusję dotyczącą tego i podobnych problemów można znaleźć w
rozdziale "Security Considerations" dokumentacji texinfo pakietu findutils. Opcja -execdir polecenia find
często może stanowić bardziej bezpieczną alternatywę.
Podczas używania opcji -I każda przeczytana linia wejściowa jest wewnętrznie buforowana. Oznacza to, że
istnieje górne ograniczenie długości linii wejściowych akceptowanych przez xargs z opcją -I. Aby ominąć
to ograniczenie można użyć opcji -s do zwiększenia rozmiaru bufora używanego przez xargs oraz można także
użyć dodatkowego wywołania xargs, by zapewnić, że bardzo długie linie się nie pojawią. Na przykład:
jakieśpolecenie | xargs -s 50000 echo | xargs -I '{}' -s 100000 rm '{}'
Powyższe pierwsze wywołanie xargs nie ma ograniczenia na długość linii wejściowej, ponieważ nie używa
opcji -i. Drugie wywołanie xargs ma takie ograniczenia, ale zapewniliśmy, że nigdy nie wystąpi linia
dłuższa niż obsługiwana. Nie jest to idealne rozwiązanie. Zamiast tego opcja -i nie powinna wymuszać
ograniczenia na długość linii — dlatego też ten opis pojawia się w rozdziale BŁĘDY. Problem nie występuje
jeśli wejście pochodzi z programu find(1), ponieważ wypisuje on tylko jedną nazwę pliku w linii.
ZGŁASZANIE BŁĘDÓW
Strona internetowa z pomocą GNU findutils: <https://www.gnu.org/software/findutils/#get-help>
O błędach tłumaczenia poinformuj przez <https://translationproject.org/team/pl.html>
Report any other issue via the form at the GNU Savannah bug tracker:
<https://savannah.gnu.org/bugs/?group=findutils>
General topics about the GNU findutils package are discussed at the bug-findutils mailing list:
<https://lists.gnu.org/mailman/listinfo/bug-findutils>
PRAWA AUTORSKIE
Copyright © 1990-2021 Free Software Foundation, Inc. Licencja GPLv3+: GNU GPL w wersji 3 lub późniejszej
<https://gnu.org/licenses/gpl.html>.
Jest to wolne oprogramowanie: można je zmieniać i rozpowszechniać. Nie ma ŻADNEJ GWARANCJI, w granicach
określonych przez prawo.
ZOBACZ TAKŻE
find(1), kill(1), locate(1), updatedb(1), fork(2), execvp(3), locatedb(5), signal(7)
Pełna dokumentacja: <https://www.gnu.org/software/findutils/xargs>
albo dostępna lokalnie przez: info xargs
T◈UMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Łukasz Kowalczyk
<lukow@tempac.okwf.fuw.edu.pl> i Robert Luberda <robert@debian.org>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
XARGS(1)