Provided by: manpages-pl_4.19.0-7_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  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-2022 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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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)