Provided by: manpages-pl_4.13-4_all bug

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)