Provided by: manpages-pl_4.21.0-2_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   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)