Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       ar - tworzy, modyfikuje i wypakowuje z archiwów

SKŁADNIA

       ar [-X32_64] [-]p[mod] [--plugin nazwa] [--target nazwa-bfd] [--output nazwa-katalogu] [--record-libdeps
       zal-bibl] [--thin] [poz-rel] [numer] archiwum [składowa...]

OPIS

       Program GNU ar tworzy, modyfikuje i wypakowuje pliki z archiwów. Archiwum jest pojedynczym plikiem,
       zawierającym zbiór innych plików w strukturze, która umożliwia wypakowanie plików oryginalnych (zwanych
       składowymi archiwum.

       Zawartość pierwotnych plików, tryb (uprawnienia), znaczniki czasu, właściciele i grupy są zachowywane w
       archiwum i mogą być przywrócone przy wypakowaniu.

       GNU ar potrafi obsługiwać archiwa, których składowe mają nazwy dowolnej długości; zależnie jednak od
       konfiguracji ar, można ustawiać limit długości nazwy składowych, dla zachowania kompatybilności z
       formatami archiwów utrzymywanymi przez inne narzędzia. Jeśli limit istnieje, to jest często limitem 15
       znaków (typowy dla formatów związanych z a.out) lub 16 (typowe dla formatów związanych z coff).

       ar jest uważany za narzędzie binarne, ponieważ jego archiwa są najczęściej używane jako biblioteki
       (statyczne) zawierające najczęściej używane funkcje. Ponieważ biblioteki często zależą od innych
       bibliotek, ar może również zachować zależności biblioteki, jeśli poda się opcję --record-libdeps.

       Jeśli poda się modyfikator s, ar będzie tworzył indeks do symboli zdefiniowanych w relokowalnych modułach
       obiektowych archiwum. Raz utworzony indeks jest odnawiany w archiwum w sytuacji, gdy ar zmieni jego
       zawartość (bezpieczne dla operacji odnawiania q). Archiwum z takim indeksem przyspiesza linkowanie
       biblioteki i umożliwia funkcjom z biblioteki wołanie siebie nawzajem bez względu na położenie w archiwum.

       Aby wypisać ten indeks, można użyć nm -s lub nm --print-armap. Jeśli archiwum nie ma takiego indeksu,
       można go dodać przy użyciu innej formy ar, nazywającej się ranlib.

       GNU ar może opcjonalnie utworzyć archiwum cienkie, które zawiera indeks symboli i odniesienia do
       pierwotnych kopii składowych archiwum. Przydaje się to przy budowaniu bibliotek do użycia w lokalnym
       drzewie budowania, gdzie zakłada się, że obiekty relokowalne pozostaną dostępne, a kopiowanie zawartości
       każdego z tych obiektów byłoby stratą czasu i miejsca.

       Archiwum może być albo cienkie albo normalne. Nie może być obiema tymi postaciami jednocześnie. Po
       utworzeniu, nie da się zmienić formatu archiwum bez uprzedniego usunięcia go i utworzenia archiwum na
       nowo.

       Archiwa cienkie są również spłaszczone, zatem archiwum cienkie dodane do innego archiwum cienkiego nie
       zagnieździ się, jak stałoby się to ze zwykłym archiwum. Elementy pierwszego archiwum zostaną w zamian
       dodane indywidualnie do drugiego archiwum.

       Ścieżki do elementów archiwum są przechowywane względem samego archiwum.

       GNU ar został zaprojektowany do użycia na dwa sposoby. Można kontrolować jego aktywność za pomocą opcji
       wiersza poleceń, podobnie jak w różnych odmianach ar na systemach uniksowych albo, jeśli poda się
       pojedynczą opcję wiersza polecenia -M, można kontrolować go za pomocą skryptu podanego na standardowe
       wejście, podobnie jak w programie MRI "librarian".

OPCJE

       GNU ar umożliwia mieszanie kodu operacji p i flag modyfikacji mod w dowolnej kolejności, w obrębie
       pierwszego argumentu wiersza poleceń.

       Można również rozpocząć pierwszy argument wiersza poleceń kreseczką.

       Litera kluczowa p określa, jaką operację wykonać; może być dowolną z następujących, lecz tylko jedną
       naraz:

       d   Kasuje  moduły  z  archiwum.  Nazwy  modułów  do  usunięcia  należy  podać jako składowe...; archiwum
           pozostanie nietknięte, jeśli nie poda się plików do skasowania.

           Jeśli poda się modyfikator v, to ar wyświetli każdy skasowany moduł.

       m   Operacja służy do przemieszczenia składowych archiwum.

           Kolejność składowych w archiwum może być istotna  przy  linkowaniu  biblioteki  z  programami,  kiedy
           symbol jest zdefiniowany więcej niż w jednej składowej.

           Jeśli  nie użyto żadnych modyfikatorów przy "m", wszystkie składowe nazwane w argumentach składowa są
           przenoszone na koniec archiwum; można również użyć modyfikatorów a, b lub  i,  aby  przenieść  je  do
           określonego miejsca.

       p   Wypisuje  określone  składowe  archiwum na standardowe wyjście. Jeśli został podany modyfikator v, to
           przed skopiowaniem zawartości składowej na standardowym wyjściu, pokazuje jego nazwę.

           Jeśli nie podano żadnych argumentów składowych, wypisane zostaną wszystkie pliki archiwum.

       q   Szybkie  dołączenie;  historycznie  dodawało  składowe...  do   końca   archiwum,   bez   sprawdzania
           podmieniania.

           Modyfikatory  a,  b,  i  i  nie  wpływają  na  tę operację; nowe składowe zawsze są dodawane na końcu
           archiwum.

           Modyfikator v powoduje, że ar wypisuje każdy plik, który doda.

           Jako że celem tej  operacji  jest  szybkość,  implementacje  ar  nie  aktualizowały  tablicy  symboli
           archiwum,  jeśli  taka  istniała.  Jednak zbyt wiele systemów zakłada, ze tablica symboli jest zawsze
           aktualna, dlatego GNU ar przebudowuje tablicę nawet przy operacji szybkiego dołączenia.

           Uwaga - GNU ar traktuje polecenie qs jako synonim r - zastępuje istniejące pliki w archiwum i  dodaje
           nowe na jego końcu.

       r   Wstawia pliki składowe... do archiwum (z podmienianiem). Ta operacja różni się od q tym, że wszystkie
           istniejące składowe zostaną usunięte, jeśli ich nazwy odpowiadają nazwom dodawanym.

           Jeśli  któryś  z  plików  nazwanych  w  argumencie składowa... nie istnieje, ar wyświetla komunikat o
           błędzie i pozostawia składowe archiwum, odpowiadające tej nazwie.

           Domyślnie, nowe składowe są dodawane na koniec pliku; można jednak użyć jednego z modyfikatorów  a, b
           lub i, aby zażądać wstawienia względem jakiejś istniejącej składowej.

           W tej operacji można użyć modyfikatora v, który wyświetla po jednym wierszu  komentarza  dla  każdego
           włączonego  pliku,  uzupełniając ją jedną z liter a lub r, wskazując tak odpowiednio, czy plik został
           dopisany na końcu (nie skasowano żadnej starej składowej) czy został podmieniony.

       s   Dodaje indeks do archiwum lub aktualizuje go, jeśli już istnieje.  To  polecenie  jest  wyjątkiem  od
           reguły,  że  można  podać tylko jedną literę polecenia, ponieważ można go stosować jako polecenie lub
           modyfikator. W obu przypadkach działa tak samo.

       t   Wypisuje w formie tabelarycznej zawartość archiwum lub  tych  z  plików,  wymienionych  w  argumencie
           składowe,  które  są  obecne  w archiwum. Normalnie wyświetlana jest tylko nazwa składowej, natomiast
           jeśli poda się modyfikator O, wyświetlane jest również odpowiednie przesunięcie  (offset)  składowej.
           Aby  zapoznać  się  z trybami (uprawnieniami), znacznikiem czasowym, właścicielem, grupą i rozmiarem,
           należy podać modyfikator v.

           Jeśli nie zostanie podany żaden argument składowa, to wypisane zostaną wszystkie pliki archiwum.

           Jeśli pod daną nazwą w archiwum (powiedzmy b.a istnieje więcej niż jeden plik (powiedzmy fie), to  ar
           t  b.a  fie  wypisze  tylko  pierwszy z nich; aby zobaczyć wszystkie, należy zażądać pełnej listy — w
           naszym przypadku, ar t b.a.

       x   Wypakowuje składowe (o nazwie składowa) z archiwum. Aby zażądać, by ar wypisał  każdą  nazwę  podczas
           jej wypakowywania, można użyć modyfikatora v.

           Jeśli nie poda się składowej, wypakowane zostaną wszystkie pliki archiwum.

           Plików  nie  da  się  wypakować  z  archiwum  cienkiego,  istnieją również ograniczenia w stosunku do
           wypakowywania z archiwów utworzonych za pomocą P: Ścieżki nie mogą być absolutne, nie  mogą  zawierać
           "..", a wszystkie podkatalogi ścieżki muszą istnieć. Jeśli wskazane byłoby ominięcie tych ograniczeń,
           należy podać opcję --output, aby podać katalog wyjściowy.

       Za  literą  kluczową  p może znajdować się pewna liczba modyfikatorów (mod), która wtedy określa wariacje
       zachowania tej operacji:

       a   Dodaje nowe pliki za istniejącą składową archiwum.  Jeśli  używa  się  tego  modyfikatora,  to  przed
           podaniem archiwum, należy wskazać nazwę istniejącej składowej archiwum argumentem poz-rel

       b   Dodaje  nowe  pliki  przed  istniejącą składową archiwum. Jeśli używa się tego modyfikatora, to przed
           podaniem  archiwum,  należy  wskazać  nazwę  istniejącej  składowej  archiwum   argumentem   poz-rel.
           (Równoważne i)

       c   Tworzy  archiwum.  Podane  archiwum jest zawsze tworzone jeżeli nie istniało, a zażąda się odnowienia
           (update). Wypisywane jest jednak wtedy ostrzeżenie, chyba  że  poda  się  z  góry,  że  chce  się  je
           utworzyć, używając tego modyfikatora.

       D   Działa  w  trybie  deterministycznym.  Przy  dodawaniu  plików  i  indeksu  archiwum  używa zera jako
           identyfikatorów użytkowników, grup,  znaczników  czasowych  oraz  używa  stałych  trybów  plików  dla
           wszystkich plików. Przy korzystaniu z tej opcji, jeśli użyje się programu ar z identycznymi opcjami i
           identycznymi  plikami  wejściowymi, kolejne przebiegi utworzą identyczne pliki wyjściowe, niezależnie
           od właścicieli, grup, trybów plików i czasów modyfikacji plików wejściowych.

           Jeśli binutils skonfigurowano z --enable-deterministic-archives, tryb ten  jest  domyślnie  włączony.
           Można go wyłączyć modyfikatorem U, zob. niżej.

       f   Skraca  nazwy  w  archiwum.  GNU  ar  normalnie  pozwala plikom mieć dowolną długość. Powoduje to, że
           archiwa mogą być niekompatybilne z natywnymi programami ar niektórych innych systemów. Jeśli jest  to
           istotne,  można  wykorzystać  modyfikator f, który umożliwia skracanie nazw plików podczas wstawiania
           ich do archiwum.

       i   Wstawia nowe pliki przed istniejącą składową archiwum. Jeśli używa się tego  modyfikatora,  to  przed
           podaniem   archiwum,   należy  wskazać  nazwę  istniejącej  składowej  archiwum  argumentem  poz-rel.
           (Równoważne b)

       l   Określa zależności tej biblioteki. Zależności muszą wystąpić bezpośrednio po tym znaku  opcji,  muszą
           używać  tej  samej  składni  jak  wiersz  polecenia  konsolidatora  oraz  muszą być podane jako jeden
           argument. Oznacza to, że jeśli konieczne jest podanie  wielu  elementów,  należy  je  zacytować,  aby
           utworzyły  pojedynczy  argument  wiersza  poleceń.  Przykład:  l  "-L/usr/local/lib  -lmojazaleznosc1
           -lmojazaleznosc2"

       N   Używa parametru numer. Jest on stosowany, gdy występuje wiele wpisów z  tą  samą  nazwą  w  archiwum.
           Wówczas wypakowane lub usunięte zostanie wystąpienie podanej nazwy o zadanym numerze z archiwum.

       o   Chroni  oryginalne  daty  składowych  przy wypakowywaniu. Jeśli nie poda się tego modyfikatora, pliki
           wypakowane z archiwum będą oznaczone czasem z chwili wypakowania.

       O   Wypisuje przesunięcia (offsety) wewnątrz archiwum. Należy używać łącznie z opcją t.

       P   Używa pełnej ścieżki przy dopasowywaniu  lub  przechowywaniu  nazw  w  archiwum.  Archiwa  z  pełnymi
           ścieżkami  nie  są  zgodne  z  normą  POSIX, zatem mogą nie działać z narzędziami innymi niż aktualne
           narzędzia GNU. Modyfikowanie takich archiwów programem GNU  ar  bez  podania  P  spowoduje  usunięcie
           pełnych  ścieżek  chyba,  że  jest to archiwum cienkie. Proszę zauważyć, że P może być przydatne przy
           dodawaniu plików do archiwum cienkiego, ponieważ r bez P ignoruje ścieżki, przy wyborze elementów  do
           zastąpienia. Zatem

                   ar rcST archiwum.a podkat/plik1 podkat/plik2 plik1

           spowoduje  zastąpienie  "podkat/plik1"  przez "plik1" z katalogu bieżącego. Dodanie P pozwoli uniknąć
           tego zastąpienia.

       s   Zapisuje indeks plików obiektowych do archiwum, lub odnawia istniejący, nawet jeśli  w  archiwum  nic
           nie  zmieniono. Tej flagi modyfikującej można użyć w połączeniu z dowolną operacją, lub samodzielnie.
           Uruchamianie ar s na archiwum jest równoważne uruchomieniu na nim ranlib.

       S   Nie tworzy tablicy symboli archiwum. Może to przyspieszyć budowanie dużej biblioteki w wielu krokach.
           Wynikowe archiwum nie może być stosowane z konsolidatorem. Aby  zbudować  tablicę  symboli  konieczne
           jest pominięcie modyfikatora S przy ostatnim wykonaniu ar albo uruchomienie ranlib na archiwum.

       T   Przestarzały  alias  --thin.  T  nie  jest  zalecane,  ponieważ w wielu implementacjach ar, T ma inne
           znaczenie, określone w X/Open System Interface.

       u   Normalnie, ar r... wstawia wszystkie wypisane pliki do archiwum. Jeśli chce się wstawić  tylko  te  z
           wymienionych  plików,  które  są nowsze od istniejących składowych o tych samych nazwach, należy użyć
           tego modyfikatora. Modyfikator u jest dozwolony tylko przy  operacji  r  (podmienienia).  W  praktyce
           kombinacja   qu   nie   jest  dozwolona,  ponieważ  sprawdzanie  znaczników  czasowych  spowodowałoby
           spowolnienie wszystkich ulepszeń operacji q.

           Uwaga - jeśli archiwum utworzono w sposób deterministyczny np.  z  modyfikatorem  D,  to  zastąpienia
           wystąpią zawsze, co uczyni modyfikator u nieefektywnym.

       U   Nie  działa  w trybie deterministycznym. Jest to odwrotność modyfikatora D opisanej powyżej:  podczas
           kopiowania  składowych  archiwum  i  zapisywania  indeksu  archiwum  używa  właściwych  wartości  pól
           identyfikatorów użytkownika, grupy, znacznika czasowego i praw dostępu do pliku.

           Jest    to    zachowanie    domyślne,    o    ile    binutils    nie    został    skonfigurowany    z
           --enable-deterministic-archives.

       v   Ten modyfikator żąda wersji operacji, która wypisuje komunikaty informacyjne. Po dodaniu modyfikatora
           v wiele operacji wyświetla dodatkowe informacje np. przetwarzane pliki.

       V   Ten modyfikator pokazuje wersję programu ar.

       Program ar obsługuje również pewne opcje wiersza poleceń, które nie są ani modyfikatorami,  ani  akcjami,
       lecz zmieniają jego zachowanie w pewien określony sposób:

       --help
           Wyświetla listę opcji wiersza poleceń obsługiwanych przez ar i wychodzi.

       --version
           Wyświetla informacje o wersji programu ar i wychodzi.

       -X32_64
           ar  ignoruje  początkową  opcję  -X32_64, ze względu na kompatybilność z AIX. Zachowanie określone tą
           opcją jest bowiem domyślne dla GNU ar.  ar nie obsługuje żadnych innych opcji -X; w szczególności nie
           obsługuje -X32, która jest domyślna dla AIX ar.

       --plugin nazwa
           Opcjonalny przełącznik wiersza poleceń --plugin nazwa powoduje, że  ar  załaduje  wtyczkę  o  podanej
           nazwie, która dodaje obsługę większej liczby formatów plików, w tym plików obiektowych z informacjami
           o optymalizacji w momencie linkowania.

           Opcja jest dostępna tylko, jeśli program zbudowano z włączoną obsługą wtyczek.

           Jeśli  nie  podano  --plugin,  lecz  obsługa wtyczek została włączona, to ar przechodzi przez pliki w
           ${libdir}/bfd-plugins w kolejności alfabetycznej i używa pierwszej wtyczki deklarującej dany obiekt.

           Proszę zauważyć, że ten katalog przeszukiwania wtyczek nie jest taki, jak używany przez opcję -plugin
           programu  ld.  Aby  ar  używał  wtyczki  konsolidarora,  musi  być   ona   skopiowana   do   katalogu
           ${libdir}/bfd-plugins.  W  przypadku  kompilacji powstałych w oparciu o GCC, wtyczka konsolidatora ma
           nazwę liblto_plugin.so.0.0.0. W przypadku  Clanga  jest  to  LLVMgold.so.  Wtyczka  GCC  jest  zawsze
           wstecznie kompatybilna z wcześniejszymi wersjami, więc wystarczy skopiować jej najnowszą wersję.

       --target nazwa-bfd
           Opcjonalny przełącznik wiersza poleceń --target nazwa-bfd określa, że składowe archiwum są w formacie
           obiektowym kodu różnym od domyślnego formatu bieżącego systemu.

       --output nazwa-katalogu
           Opcja  --output  służy  do określenia ścieżki do katalogu, do którego powinny być wypakowane składowe
           archiwum. Jeśli się jej nie poda, używany jest katalog bieżący.

           Uwaga - choć obecność tej opcji wymusza wypakowanie za pomocą x, to wciąż trzeba  podać  tę  opcję  w
           wierszu polecenia.

       --record-libdeps zal-bibl
           Opcja --record-libdeps jest identyczna jak modyfikator l, stanowi jedynie odmianę w długiej postaci.

       --thin
           Czyni  z  podanego  archiwum  archiwum  cienkie.  Jeśli  podane archiwum już istnieje i jest archiwum
           zwykłym, istniejące składowe muszą być obecne w tym samym katalogu, co archiwum.

       @plik
           Czyta opcje wiersza poleceń z podanego pliku. Przeczytane opcje są wstawiane  w  miejsce  oryginalnej
           opcji @plik. Jeśli plik nie istnieje lub nie może być odczytany, ta opcja jest traktowana dosłownie i
           nie jest usuwana.

           Opcje  w  pliku  są  rozdzielane  białymi znakami. Biały znak może wystąpić w opcji, jeśli cała opcja
           zostanie ujęta w pojedyncze albo podwójne cudzysłowy. Można dodać dowolny znak (włączając w  to  znak
           odwrotnego  ukośnika),  poprzedzając  go  znakiem  odwrotnego  ukośnika.  Plik  może również zawierać
           dodatkowe opcje @plik -  w takim przypadku każda z takich opcji będzie przetwarzana rekurencyjnie.

ZOBACZ TAKŻE

       nm(1), ranlib(1) oraz wpisy Info zestawu binutils.

PRAWA AUTORSKIE

       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Zezwala się na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego  dokumentu  na  warunkach  Licencji
       Wolnej  Dokumentacji  GNU  (GNU Free Documentation License) w wersji 1.3 lub jakiejkolwiek nowszej wersji
       opublikowanej przez Fundację Wolnego Oprogramowania, przy czym  Sekcjami  niezmiennymi  są  „GNU  General
       Public  License”  i  „GNU  Free  Documentation  License”, bez treści przedniej lub tylnej strony okładki.
       Egzemplarz licencji zamieszczono w sekcji zatytułowanej „GNU Free Documentation License”.

TŁUMACZENIE

       Tłumaczenie  niniejszej  strony  podręcznika:  Przemek  Borys  <pborys@dione.ids.pl>  i   Michał   Kułach
       <michal.kulach@gmail.com>

       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.

binutils-2.44                                    3 marca 2025 r.                                           AR(1)