ar: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
 
(2 mellanliggande sidversioner av samma användare visas inte)
Rad 1: Rad 1:
= ar(1) - Linux manualsida =
= ar(1p) – Linux manualsida =
 
== PROLOG ==
Denna manualsida är en del av POSIX-programmerarens manual. Linux-implementeringen av detta gränssnitt kan skilja sig (se motsvarande Linux-manualsida för detaljer om beteendet på Linux), eller så kanske gränssnittet inte är implementerat på Linux.


== NAMN ==
== NAMN ==
'''ar''' — skapa, ändra och extrahera från arkiv
'''ar''' — skapa och underhålla biblioteksarkiv


== SYNOPSIS ==
== SYNOPSIS ==
<pre>
<pre>
ar [-X32_64] [-]p[mod] [--plugin namn] [--target bfdnamn]
ar -d [-v] arkiv fil...
  [--output katalog] [--record-libdeps libdeps] [--thin] [relpos]
  [antal] arkiv [medlem...]
ar -m [-v] arkiv fil...
ar -m -a [-v] posnamn arkiv fil...
ar -m -b [-v] posnamn arkiv fil...
ar -m -i [-v] posnamn arkiv fil...
 
ar -p [-v] [-s] arkiv [fil...]
 
ar -q [-cv] arkiv fil...
 
ar -r [-cuv] arkiv fil...
 
ar -r -a [-cuv] posnamn arkiv fil...
ar -r -b [-cuv] posnamn arkiv fil...
ar -r -i [-cuv] posnamn arkiv fil...
 
ar -t [-v] [-s] arkiv [fil...]
 
ar -x [-v] [-sCT] arkiv [fil...]
</pre>
</pre>


== BESKRIVNING ==
== BESKRIVNING ==
Programmet '''GNU ar''' används för att skapa, ändra och extrahera filer från arkiv.   
Verktyget '''ar''' är en del av tillvalet Software Development Utilities.
Ett arkiv är en enda fil som innehåller en samling av andra filer i en struktur som gör det möjligt att återskapa de individuella filerna (kallade medlemmar i arkivet).
 
Kommandot '''ar''' kan användas för att skapa och underhålla grupper av filer som kombineras till ett arkiv. När ett arkiv väl har skapats kan nya filer läggas till, och befintliga filer i ett arkiv kan extraheras, tas bort eller ersättas. Om ett arkiv enbart består av giltiga objektfiler ska implementationen formatera arkivet så att det kan användas som ett bibliotek för länkning (se '''c99''' och '''fort77'''). Om några av filerna i arkivet inte är giltiga objektfiler är arkivets lämplighet som bibliotek inte definierad. Om ett arkiv helt består av utskrivbara filer ska hela arkivet vara utskrivbart.
 
När '''ar''' skapar ett arkiv lägger det in administrativ information som anger om en symboltabell finns i arkivet. Om minst en objektfil som '''ar''' känner igen finns i arkivet, ska en symboltabell skapas i arkivet och underhållas av '''ar'''. Den används av länkningsprogrammet för att söka i arkivet. Närhelst kommandot '''ar''' används för att skapa eller uppdatera innehållet i ett sådant arkiv, ska symboltabellen byggas om. Alternativet '''-s''' tvingar fram en ombyggnad av symboltabellen.
 
Alla '''fil'''-operander kan vara sökvägar. Men filer i arkiv namnges av ett filnamn, som är den sista komponenten i sökvägen som användes när filen lades till i arkivet. Jämförelsen av '''fil'''-operander med namn på filer i arkiv utförs genom att jämföra den sista komponenten av operanden med namnet på filen i arkivet.
 
Det är ospecificerat om flera filer i arkivet kan ha identiska namn. I ett sådant fall gäller att varje '''fil''' och '''posnamn''' endast matchar den första filen i arkivet som har ett namn identiskt med operandens sista komponent.
 
== OPTIONS ==
Kommandot '''ar''' ska följa riktlinjerna i avsnittet 12.2 (Utility Syntax Guidelines) i Basdefinitionerna av POSIX.1‑2017, utom riktlinje 9.
 
Följande alternativ ska stödjas:
 
* '''-a''' 
  Placera nya filer i arkivet efter filen med namnet givet av operandet '''posnamn'''.
 
* '''-b''' 
  Placera nya filer i arkivet före filen med namnet givet av operandet '''posnamn'''.
 
* '''-c''' 
  Undertryck det diagnostiska meddelandet som normalt skrivs till standard error när arkivet '''arkiv''' skapas.
 
* '''-C''' 
  Förhindra att extraherade filer ersätter filer med samma namn i filsystemet. Detta är användbart när '''-T''' också används, för att förhindra att trunkerade filnamn ersätter filer med samma prefix.
 
* '''-d''' 
  Ta bort en eller flera filer ('''fil''') från '''arkiv'''.
 
* '''-i''' 
  Placera nya filer i arkivet före filen i arkivet namngiven av operandet '''posnamn''' (motsvarar '''-b''').
 
* '''-m''' 
  Flytta de namngivna filerna i arkivet. Alternativen '''-a''', '''-b''' eller '''-i''' tillsammans med operandet '''posnamn''' anger position; annars flyttas filerna till slutet av arkivet.
 
* '''-p''' 
  Skriv innehållet i filerna ('''fil''') i arkivet (namngivna av operander) från '''arkiv''' till standardutgången. Om inga fil-operander anges skrivs innehållet i alla filer i arkivet ut i arkivets ordning.
 
* '''-q'''  
  Lägg till de namngivna filerna i slutet av arkivet. I detta fall kontrollerar inte '''ar''' om filerna redan finns i arkivet. Detta är användbart för att förbikoppla den sökning som annars görs när ett stort arkiv skapas stegvis.
 
* '''-r''' 
  Ersätt eller lägg till filer ('''fil''') till '''arkiv'''. Om arkivet '''arkiv''' inte existerar ska ett nytt arkiv skapas, och ett diagnostiskt meddelande ska skrivas till standard error (om inte '''-c''' anges). Om inga filer anges och arkivet existerar är resultatet ej definierat. Filer som ersätter befintliga filer ska inte ändra ordningen i arkivet. Filer som inte ersätter befintliga filer ska läggas till i arkivet såvida inte något av alternativen '''-a''', '''-b''' eller '''-i''' specificerar en annan position.
 
* '''-s''' 
  Tvinga fram en återskapning av arkivets symboltabell, även om '''ar''' inte anropas med ett alternativ som ändrar arkivets innehåll. Detta är användbart för att återställa symboltabellen i arkivet efter att den har rensats ('''strip''').
 
* '''-t''' 
  Skriv en innehållsförteckning av '''arkiv''' till standardutgången. Endast filerna som anges av fil-operander ska inkluderas i listan. Om inga fil-operander anges ska alla filer i '''arkiv''' listas i samma ordning som i arkivet.
 
* '''-T''' 
  Tillåt förkortning (trunkering) av extraherade filnamn som är längre än vad filsystemet stöder. Som standard är det ett fel att extrahera en fil med ett för långt namn; ett diagnostiskt meddelande visas, och filen extraheras inte.
 
* '''-u''' 
  Uppdatera äldre filer i arkivet. När alternativet används med '''-r''' ska filer i arkivet bara ersättas om motsvarande fil har ett ändringsdatum (modifikationstid) som är minst lika nytt som det för filen i arkivet.
 
* '''-v''' 
  Ge utförligare information (verbose). 
  - När det används med alternativen '''-d''', '''-r''' eller '''-x''': skriv detaljerad fil-för-fil-beskrivning av arkivets skapande och underhållsaktiviteter, som beskrivs i avsnittet STDOUT. 
  - När det används med '''-p''': skriv filnamnet innan filens innehåll skrivs till standardutgång. 
  - När det används med '''-t''': inkludera en lång lista med information om filerna i arkivet, som beskrivs i avsnittet STDOUT.
 
* '''-x''' 
  Extrahera filer i arkivet med namn angivna av fil-operander från '''arkiv'''. Arkivets innehåll förändras inte. Om inga fil-operander anges, extraheras alla filer i arkivet. Tidstämpeln (modifikationstiden) för varje extraherad fil sätts till tiden när filen extraherades ur arkivet.
 
== OPERANDS ==
Följande operander ska stödjas:
 
* '''arkiv''' 
  En sökväg till arkivet.
 
* '''fil''' 
  En sökväg. Endast den sista komponenten används vid jämförelse mot filnamn i arkivet. Om två eller flera fil-operander har samma sista komponent är resultatet ospecificerat. Arkivformatet för implementationen får inte trunkera giltiga filnamn för filer som läggs till eller ersätts i arkivet.
 
* '''posnamn''' 
  Namnet på en fil i arkivet som används för relativ placering. Se alternativen '''-m''' och '''-r'''.


De ursprungliga filernas innehåll, behörigheter, tidsstämpel, ägare och grupp bevaras i arkivet och kan återställas vid extrahering.
== STDIN ==
Används inte.


'''GNU ar''' kan hantera arkiv med filnamn av valfri längd, men vissa system kan ha begränsningar på längden för kompatibilitet. 
== INPUT FILES ==
Vanliga gränser är 15 tecken (a.out-format) eller 16 tecken (coff-format).
Arkivet som namnges av '''arkiv''' ska vara en fil i det format som skapas av '''ar -r'''.


Arkiv används ofta som bibliotek som innehåller vanliga subrutiner. Med alternativet '''--record-libdeps''' kan '''ar''' även registrera bibliotekets beroenden.
== ENVIRONMENT_VARIABLES ==
Följande miljövariabler påverkar exekveringen av '''ar''':


== ALTERNATIV ==
* '''LANG'''
'''GNU ar''' tillåter en kombination av operationer och modifikatörer i det första argumentet på kommandoraden. Här är de viktigaste alternativen:
  Ger ett standardvärde för de internationaliseringsvariabler som är osatta eller tomma. (Se avsnitt 8.2 i Basdefinitionerna i POSIX.1‑2017 för prioritering av internationaliseringsvariabler.)


### Operationer
* '''LC_ALL'''   
* '''d''' (delete)  
  Om denna är satt till ett icke-tomt värde åsidosätts värdena för alla andra internationaliseringsvariabler.
Tar bort medlemmar från arkivet. 
Ange namnen på de medlemmar som ska tas bort som argumentet '''medlem...'''. Om inga medlemmar anges, påverkas inte arkivet.


Om modifikatören '''v''' används, listar '''ar''' varje medlem medan den tas bort.
* '''LC_CTYPE'''
  Bestämmer teckenuppdelning (till exempel enbyte mot flerbyte) i argument och inmatningsfiler.


* '''m''' (move)  
* '''LC_MESSAGES'''   
Flyttar medlemmar inom arkivet. 
  Bestämmer vilken locale som används för utformning och innehåll i diagnostiska meddelanden skrivna till standard error.
Ordningen av medlemmar i ett arkiv kan påverka hur program länkas om en symbol definieras i flera medlemmar.


Om inga modifikatörer används flyttas de specificerade medlemmarna till slutet av arkivet. Modifikatörerna '''a''', '''b''' eller '''i''' kan användas för att flytta medlemmar till en specifik position.
* '''LC_TIME'''
  Bestämmer format och innehåll för datum- och tidssträngar som skrivs av '''ar -tv'''.


* '''p''' (print)  
* '''NLSPATH'''   
Skriv ut innehållet i angivna medlemmar till standardutdata. 
  Bestämmer var meddelandekataloger finns för bearbetning av '''LC_MESSAGES'''.
Om modifikatören '''v''' används visas medlemsnamnet före dess innehåll.


Om inga medlemmar anges skrivs innehållet i alla medlemmar ut.
* '''TMPDIR''' 
  Bestämmer sökvägen som åsidosätter standardkatalogen för temporära filer, om sådan finns.
 
* '''TZ''' 
  Bestämmer tidszon som används för att beräkna datum- och tidssträngar som skrivs av '''ar -tv'''. Om '''TZ''' är osatt eller tom ska en ospecificerad standardtidszon användas.
 
== ASYNCHRONOUS_EVENTS ==
Standard.
 
== STDOUT ==
Om alternativet '''-d''' används med '''-v''', ska standardutdata ha följande format:
<pre>
"d - %s\n", <fil>
</pre>
där '''fil''' är operand angiven på kommandoraden.
 
Om alternativet '''-p''' används med '''-v''' ska '''ar''' föregå innehållet i varje fil med:
<pre>
"\n<%s>\n\n", <fil>
</pre>
där '''fil''' är operand om sådana angivits, eller filnamnet i arkivet om inga fil-operander angivits.
 
Om alternativet '''-r''' används med '''-v''' gäller:
* Om '''fil''' redan finns i arkivet, visas:
  <pre>"r - %s\n", <fil></pre>
* Om '''fil''' inte finns i arkivet, visas:
  <pre>"a - %s\n", <fil></pre>
där '''fil''' är operand angiven på kommandoraden.
 
Om alternativet '''-t''' används skriver '''ar''' filnamnen i arkivet till standardutgång i formatet:
<pre>"%s\n", <fil></pre>
där '''fil''' är operand om sådan angivits, eller filnamnet i arkivet om inga operander angivits.
 
Om '''-t''' används tillsammans med '''-v''' ska standardutdata ha följande format:
<pre>
"%s %u/%u %u %s %d %d:%d %d %s\n",
  <medlemsbehörigheter>, <användar-ID>, <grupp-ID>,
  <antal byte i medlem>, <förkortad månad>, <dag i månaden>,
  <timme>, <minut>, <år>, <fil>
</pre>
där:


* '''q''' (quick append) 
* '''<fil>''' är operanden om sådan angivits, eller filnamnet i arkivet i annat fall.
Lägger snabbt till filer i slutet av arkivet utan att kontrollera om de redan finns.
* '''<medlemsbehörigheter>''' formateras på samma sätt som '''filbehörigheter''' i '''ls''', förutom att den första tecknet (filtyp) utelämnas; strängen representerar filens rättigheter när den lades till arkivet.
Modifikatörerna '''a''', '''b''' och '''i''' påverkar inte denna operation. Nya medlemmar läggs alltid till i slutet av arkivet.


Modifikatören '''v''' gör att '''ar''' listar varje fil medan den läggs till.
De fält som rör datum och tid avspeglar den senast registrerade modifikationstiden för filen när den lades till eller ersattes i arkivet:
Observera att denna operation inte alltid uppdaterar arkivets symboltabell, även om många system förutsätter att tabellen är uppdaterad. GNU ar uppdaterar dock alltid symboltabellen.
* '''<förkortad månad>''' motsvarar formatet '''%b''' i '''date'''.
* '''<dag i månaden>''' motsvarar formatet '''%e''' i '''date'''.
* '''<timme>''' motsvarar formatet '''%H''' i '''date'''.
* '''<minut>''' motsvarar formatet '''%M''' i '''date'''.
* '''<år>''' motsvarar formatet '''%Y''' i '''date'''.


* '''r''' (replace) 
Om '''LC_TIME''' inte anger POSIX-locale kan annat format och ordning användas, enligt gällande locale.
Lägger till eller ersätter filer i arkivet. 
Om en fil med samma namn redan finns, ersätts den. Om en fil inte existerar visas ett felmeddelande.


Som standard läggs nya medlemmar till i slutet av arkivet. Modifikatörerna '''a''', '''b''' eller '''i''' kan användas för att placera medlemmar relativt en befintlig medlem.
Om '''-x''' används med '''-v''' ska standardutdata ha formatet:
<pre>"x - %s\n", <fil></pre>
där '''fil''' är operand om sådan angivits, eller filnamnet i arkivet i annat fall.


Modifikatören '''v''' visar information om varje fil som läggs till eller ersätts.
== STDERR ==
Standard error används endast för diagnostiska meddelanden. Diagnostik om att ett nytt arkiv skapas när '''-c''' inte är angett ska inte påverka returstatus.


* '''s''' (symbol index) 
== OUTPUT_FILES ==
Skapar eller uppdaterar ett symbolindex i arkivet. 
Arkiv är filer med ospecificerade format.
Detta kommando kan användas ensam eller som en modifikatör.


* '''t''' (table) 
== EXTENDED_DESCRIPTION ==
Visar en lista över innehållet i arkivet. 
Ingen.
Om modifikatören '''v''' används visas detaljer som behörigheter, tidsstämpel, ägare och storlek.


Om flera medlemmar med samma namn finns i arkivet, visas endast den första instansen. För att se alla måste du lista hela arkivet.
== EXIT_STATUS ==
Följande returvärden gäller:


* '''x''' (extract)  
* '''0'''   
Extraherar medlemmar (namngivna i '''medlem...''') från arkivet. 
  Kommandot lyckades.
Om modifikatören '''v''' används, listar '''ar''' varje namn medan det extraheras.


Om inga medlemmar anges extraheras alla filer i arkivet.
* '''>0''' 
  Ett fel inträffade.


Observera följande begränsningar vid extrahering från vissa arkiv:
== CONSEQUENCES_OF_ERRORS ==
1. Filer kan inte extraheras från tunna arkiv.
Standard.
2. Vid extrahering från arkiv som skapats med '''P''' får filvägar inte vara absoluta, innehålla "..", eller sakna de nödvändiga underkatalogerna. 
  Använd alternativet '''--output''' för att ange en utdata-katalog och undvika dessa restriktioner.


### Modifikatörer
''Följande avsnitt är informativa.''
* '''a'''
Lägg till nya filer efter en befintlig medlem.


* '''b''' eller '''i''' 
== APPLICATION_USAGE ==
Lägg till nya filer före en befintlig medlem.
Ingen.


* '''c''' 
== EXAMPLES ==
Skapa arkivet om det inte redan finns.
Inga.


* '''D'''
== RATIONALE ==
Kör i deterministiskt läge. Detta innebär att UID, GID, tidsstämplar och filrättigheter sätts till fasta värden.
Arkivformatet beskrivs inte i detalj. Det är känt att det finns flera olika '''ar'''-format som inte är inbördes kompatibla. Kommandot '''ar''' ingår dock för att göra det möjligt att skapa arkiv som endast är avsedda för användning på en och samma dator. Arkivet hanteras som en fil och kan flyttas som en fil, vilket ger en möjlighet att flytta ett arkiv mellan två system som använder samma implementering av '''ar'''.


* '''o'''
Verktyg som '''pax''' (och dess föregångare '''tar''' och '''cpio''') tillhandahåller också "arkiv". Detta är inte en duplicering; '''ar''' tillhandahålls för att ge ett gränssnitt främst för '''make''' och kompilatorerna, baserat på historisk praxis.
Bevara ursprungliga tidsstämplar vid extrahering.


* '''v'''
I historiska implementationer krävde '''-q''' (finns på XSI-kompatibla system) inte kontroll av redan befintliga medlemmar, vilket kunde gå snabbt då '''ar''' inte kontrollerade om filerna redan fanns i arkivet. Denna beskrivning kan, men behöver inte, gälla för en helt ny implementation av verktyget.
Aktivera detaljerad utskrift.


* '''u'''
BSD-implementationer krävde historiskt att användaren angav '''-s''' när arkivet skulle innehålla en symboltabell. Som i denna standard (POSIX.1‑2017) skapar eller uppdaterar System V en symboltabell närhelst en objektfil tas bort, läggs till eller uppdateras i arkivet.
Lägg endast till filer som är nyare än befintliga medlemmar.


* '''P''' 
Avsnittet OPERANDS kräver att arkivet inte trunkerar filnamn under {NAME_MAX}, eftersom vissa äldre implementationer gjorde detta, vilket orsakade oförutsedda problem. Här klargörs kravet för att undvika missförstånd.
Använd hela sökvägen vid matchning eller lagring av namn i arkivet.


* '''s'''
Historiskt har System V-dokumentationen angett att alternativen '''-dmpqrtx''' inte behöver inledas med ett minustecken ('''-'''). I denna standard krävs dock att en applikation som följer standarden använder inledande minustecken.
Skapa eller uppdatera ett symbolindex i arkivet.


* '''S''' 
Det archivformat som används av 4.4 BSD beskrivs här i RATIONALE som exempel. (En utförlig beskrivning av detta format följer i originaltexten men är inte en del av den formella specifikationen.)
Hoppa över att skapa ett symbolindex. Detta kan snabba upp byggprocessen för stora arkiv.


* '''T'''
Kommandot '''ar''' kräver att (om alla dess medlemmar är giltiga objektfiler) '''ar''' producerar ett objektkodbibliotek som länkningsprogrammet kan använda för att extrahera objektmoduler. Om länkningsprogrammet behöver en symboltabell för att slumpvis komma åt arkivet ska '''ar''' tillhandahålla den; dock krävs det inte att en symboltabell alltid finns.
Gör arkivet "tunt". Detta är samma som att använda alternativet '''--thin'''.


== LÅNGA ALTERNATIV ==
BSD-alternativet '''-o''' har utelämnats. Det är ovanligt att en portabel applikation använder '''ar''' för att extrahera objektkod med exakt bevarande av modifikationstid, eftersom detta oftast saknar betydelse för '''make'''. Därför har man beslutat att extraherade filer får det aktuella klockslaget som modifikationstid.
* '''--help'''
Visa en hjälptext och avsluta.


* '''--version''' 
Minst en känd implementation (för en mindre dator) kan endast hantera objektfiler, inte blandade objekt- och andra filer. Möjligheten att hantera vilken fil som helst är både historisk praxis och en rimlig förväntan.
Visa versionsinformation och avsluta.


* '''--thin'''
Det diskuterades om man skulle ändra utdataformatet för '''ar -tv''' till samma som '''ls -l'''. Man avstod, eftersom det skulle bryta historisk användning. Dessutom använder '''ar''' numeriska UID/GID medan '''ls -l''' visar användarnamn och gruppnamn, vilket inte är pålitligt vid förflyttning av arkiv mellan olika system.
Skapa ett tunt arkiv.


* '''--plugin namn'''
Texten om kombinationen '''-ur''' följer historisk praxis. Eftersom ett och samma filnamn kan referera till olika filer (t.ex. '''/a/foo''' och '''/b/foo''') är det rimligt att ersätta filen i arkivet även när tidsstämpeln i arkivet är identisk med den i filsystemet.
Ladda ett plugin för att stödja fler filformat.


* '''--output katalog''' 
== FUTURE_DIRECTIONS ==
Extrahera medlemmar till en angiven katalog.
Inga.


* '''@fil''' 
== SEE_ALSO ==
Läs kommandoradsalternativ från en fil. Alternativen separeras med blanksteg eller radslut.
* [[c99]](1p)
* [[date]](1p)
* [[fort77]](1p)
* [[pax]](1p)
* [[strip]](1p)


== SE ÄVEN ==
Se också avsnitt 8, Environment Variables, avsnitt 12.2, Utility Syntax Guidelines, samt [[unistd.h(0p)]] i Basdefinitionerna av POSIX.1‑2017, samt beskrivningen av {POSIX_NO_TRUNC}.
* '''nm(1), ranlib(1), binutils-info'''


== COPYRIGHT ==
== COPYRIGHT ==
Copyright (c) 1991-2024 Free Software Foundation, Inc.
Delar av denna text har återgivits elektroniskt från IEEE Std 1003.1-2017, Standard for Information Technology – Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc och The Open Group. Vid eventuella avvikelser mellan denna version och den ursprungliga IEEE- och The Open Group-standarden gäller originalet som norm. Originalstandarden finns tillgänglig online på [http://www.opengroup.org/unix/online.html http://www.opengroup.org/unix/online.html].
Denna manualsida är licensierad under GNU Free Documentation License, Version 1.3 eller senare.


== KOLOFON ==
Eventuella tryckfel eller formateringsfel som uppträder i denna sida har sannolikt uppstått under konvertering från källfiler till man-page-format. För att rapportera sådana fel, se [https://www.kernel.org/doc/man-pages/reporting_bugs.html https://www.kernel.org/doc/man-pages/reporting_bugs.html].
Denna sida är en del av projektet '''binutils''' som erbjuder verktyg för att arbeta med körbara binärer.
För mer information, se: [http://www.gnu.org/software/binutils/](http://www.gnu.org/software/binutils/).


Rapportera buggar på: 
<pre>IEEE/The Open Group              2017                            AR(1P)</pre>
[http://sourceware.org/bugzilla/enter_bug.cgi?product=binutils](http://www.sourceware.org/bugzilla/enter_bug.cgi?product=binutils).


= Sidslut =
= Sidslut =

Nuvarande version från 18 januari 2025 kl. 06.12

ar(1p) – Linux manualsida

PROLOG

Denna manualsida är en del av POSIX-programmerarens manual. Linux-implementeringen av detta gränssnitt kan skilja sig (se motsvarande Linux-manualsida för detaljer om beteendet på Linux), eller så kanske gränssnittet inte är implementerat på Linux.

NAMN

ar — skapa och underhålla biblioteksarkiv

SYNOPSIS

ar -d [-v] arkiv fil...
 
ar -m [-v] arkiv fil...
ar -m -a [-v] posnamn arkiv fil...
ar -m -b [-v] posnamn arkiv fil...
ar -m -i [-v] posnamn arkiv fil...

ar -p [-v] [-s] arkiv [fil...]

ar -q [-cv] arkiv fil...

ar -r [-cuv] arkiv fil...

ar -r -a [-cuv] posnamn arkiv fil...
ar -r -b [-cuv] posnamn arkiv fil...
ar -r -i [-cuv] posnamn arkiv fil...

ar -t [-v] [-s] arkiv [fil...]

ar -x [-v] [-sCT] arkiv [fil...]

BESKRIVNING

Verktyget ar är en del av tillvalet Software Development Utilities.

Kommandot ar kan användas för att skapa och underhålla grupper av filer som kombineras till ett arkiv. När ett arkiv väl har skapats kan nya filer läggas till, och befintliga filer i ett arkiv kan extraheras, tas bort eller ersättas. Om ett arkiv enbart består av giltiga objektfiler ska implementationen formatera arkivet så att det kan användas som ett bibliotek för länkning (se c99 och fort77). Om några av filerna i arkivet inte är giltiga objektfiler är arkivets lämplighet som bibliotek inte definierad. Om ett arkiv helt består av utskrivbara filer ska hela arkivet vara utskrivbart.

När ar skapar ett arkiv lägger det in administrativ information som anger om en symboltabell finns i arkivet. Om minst en objektfil som ar känner igen finns i arkivet, ska en symboltabell skapas i arkivet och underhållas av ar. Den används av länkningsprogrammet för att söka i arkivet. Närhelst kommandot ar används för att skapa eller uppdatera innehållet i ett sådant arkiv, ska symboltabellen byggas om. Alternativet -s tvingar fram en ombyggnad av symboltabellen.

Alla fil-operander kan vara sökvägar. Men filer i arkiv namnges av ett filnamn, som är den sista komponenten i sökvägen som användes när filen lades till i arkivet. Jämförelsen av fil-operander med namn på filer i arkiv utförs genom att jämföra den sista komponenten av operanden med namnet på filen i arkivet.

Det är ospecificerat om flera filer i arkivet kan ha identiska namn. I ett sådant fall gäller att varje fil och posnamn endast matchar den första filen i arkivet som har ett namn identiskt med operandens sista komponent.

OPTIONS

Kommandot ar ska följa riktlinjerna i avsnittet 12.2 (Utility Syntax Guidelines) i Basdefinitionerna av POSIX.1‑2017, utom riktlinje 9.

Följande alternativ ska stödjas:

  • -a
 Placera nya filer i arkivet efter filen med namnet givet av operandet posnamn.
  • -b
 Placera nya filer i arkivet före filen med namnet givet av operandet posnamn.
  • -c
 Undertryck det diagnostiska meddelandet som normalt skrivs till standard error när arkivet arkiv skapas.
  • -C
 Förhindra att extraherade filer ersätter filer med samma namn i filsystemet. Detta är användbart när -T också används, för att förhindra att trunkerade filnamn ersätter filer med samma prefix.
  • -d
 Ta bort en eller flera filer (fil) från arkiv.
  • -i
 Placera nya filer i arkivet före filen i arkivet namngiven av operandet posnamn (motsvarar -b).
  • -m
 Flytta de namngivna filerna i arkivet. Alternativen -a, -b eller -i tillsammans med operandet posnamn anger position; annars flyttas filerna till slutet av arkivet.
  • -p
 Skriv innehållet i filerna (fil) i arkivet (namngivna av operander) från arkiv till standardutgången. Om inga fil-operander anges skrivs innehållet i alla filer i arkivet ut i arkivets ordning.
  • -q
 Lägg till de namngivna filerna i slutet av arkivet. I detta fall kontrollerar inte ar om filerna redan finns i arkivet. Detta är användbart för att förbikoppla den sökning som annars görs när ett stort arkiv skapas stegvis.
  • -r
 Ersätt eller lägg till filer (fil) till arkiv. Om arkivet arkiv inte existerar ska ett nytt arkiv skapas, och ett diagnostiskt meddelande ska skrivas till standard error (om inte -c anges). Om inga filer anges och arkivet existerar är resultatet ej definierat. Filer som ersätter befintliga filer ska inte ändra ordningen i arkivet. Filer som inte ersätter befintliga filer ska läggas till i arkivet såvida inte något av alternativen -a, -b eller -i specificerar en annan position.
  • -s
 Tvinga fram en återskapning av arkivets symboltabell, även om ar inte anropas med ett alternativ som ändrar arkivets innehåll. Detta är användbart för att återställa symboltabellen i arkivet efter att den har rensats (strip).
  • -t
 Skriv en innehållsförteckning av arkiv till standardutgången. Endast filerna som anges av fil-operander ska inkluderas i listan. Om inga fil-operander anges ska alla filer i arkiv listas i samma ordning som i arkivet.
  • -T
 Tillåt förkortning (trunkering) av extraherade filnamn som är längre än vad filsystemet stöder. Som standard är det ett fel att extrahera en fil med ett för långt namn; ett diagnostiskt meddelande visas, och filen extraheras inte.
  • -u
 Uppdatera äldre filer i arkivet. När alternativet används med -r ska filer i arkivet bara ersättas om motsvarande fil har ett ändringsdatum (modifikationstid) som är minst lika nytt som det för filen i arkivet.
  • -v
 Ge utförligare information (verbose).  
 - När det används med alternativen -d, -r eller -x: skriv detaljerad fil-för-fil-beskrivning av arkivets skapande och underhållsaktiviteter, som beskrivs i avsnittet STDOUT.  
 - När det används med -p: skriv filnamnet innan filens innehåll skrivs till standardutgång.  
 - När det används med -t: inkludera en lång lista med information om filerna i arkivet, som beskrivs i avsnittet STDOUT.
  • -x
 Extrahera filer i arkivet med namn angivna av fil-operander från arkiv. Arkivets innehåll förändras inte. Om inga fil-operander anges, extraheras alla filer i arkivet. Tidstämpeln (modifikationstiden) för varje extraherad fil sätts till tiden när filen extraherades ur arkivet.

OPERANDS

Följande operander ska stödjas:

  • arkiv
 En sökväg till arkivet.
  • fil
 En sökväg. Endast den sista komponenten används vid jämförelse mot filnamn i arkivet. Om två eller flera fil-operander har samma sista komponent är resultatet ospecificerat. Arkivformatet för implementationen får inte trunkera giltiga filnamn för filer som läggs till eller ersätts i arkivet.
  • posnamn
 Namnet på en fil i arkivet som används för relativ placering. Se alternativen -m och -r.

STDIN

Används inte.

INPUT FILES

Arkivet som namnges av arkiv ska vara en fil i det format som skapas av ar -r.

ENVIRONMENT_VARIABLES

Följande miljövariabler påverkar exekveringen av ar:

  • LANG
 Ger ett standardvärde för de internationaliseringsvariabler som är osatta eller tomma. (Se avsnitt 8.2 i Basdefinitionerna i POSIX.1‑2017 för prioritering av internationaliseringsvariabler.)
  • LC_ALL
 Om denna är satt till ett icke-tomt värde åsidosätts värdena för alla andra internationaliseringsvariabler.
  • LC_CTYPE
 Bestämmer teckenuppdelning (till exempel enbyte mot flerbyte) i argument och inmatningsfiler.
  • LC_MESSAGES
 Bestämmer vilken locale som används för utformning och innehåll i diagnostiska meddelanden skrivna till standard error.
  • LC_TIME
 Bestämmer format och innehåll för datum- och tidssträngar som skrivs av ar -tv.
  • NLSPATH
 Bestämmer var meddelandekataloger finns för bearbetning av LC_MESSAGES.
  • TMPDIR
 Bestämmer sökvägen som åsidosätter standardkatalogen för temporära filer, om sådan finns.
  • TZ
 Bestämmer tidszon som används för att beräkna datum- och tidssträngar som skrivs av ar -tv. Om TZ är osatt eller tom ska en ospecificerad standardtidszon användas.

ASYNCHRONOUS_EVENTS

Standard.

STDOUT

Om alternativet -d används med -v, ska standardutdata ha följande format:

"d - %s\n", <fil>

där fil är operand angiven på kommandoraden.

Om alternativet -p används med -v ska ar föregå innehållet i varje fil med:

"\n<%s>\n\n", <fil>

där fil är operand om sådana angivits, eller filnamnet i arkivet om inga fil-operander angivits.

Om alternativet -r används med -v gäller:

  • Om fil redan finns i arkivet, visas:
"r - %s\n", <fil>
  • Om fil inte finns i arkivet, visas:
"a - %s\n", <fil>

där fil är operand angiven på kommandoraden.

Om alternativet -t används skriver ar filnamnen i arkivet till standardutgång i formatet:

"%s\n", <fil>

där fil är operand om sådan angivits, eller filnamnet i arkivet om inga operander angivits.

Om -t används tillsammans med -v ska standardutdata ha följande format:

"%s %u/%u %u %s %d %d:%d %d %s\n",
   <medlemsbehörigheter>, <användar-ID>, <grupp-ID>,
   <antal byte i medlem>, <förkortad månad>, <dag i månaden>,
   <timme>, <minut>, <år>, <fil>

där:

  • <fil> är operanden om sådan angivits, eller filnamnet i arkivet i annat fall.
  • <medlemsbehörigheter> formateras på samma sätt som filbehörigheter i ls, förutom att den första tecknet (filtyp) utelämnas; strängen representerar filens rättigheter när den lades till arkivet.

De fält som rör datum och tid avspeglar den senast registrerade modifikationstiden för filen när den lades till eller ersattes i arkivet:

  • <förkortad månad> motsvarar formatet %b i date.
  • <dag i månaden> motsvarar formatet %e i date.
  • <timme> motsvarar formatet %H i date.
  • <minut> motsvarar formatet %M i date.
  • <år> motsvarar formatet %Y i date.

Om LC_TIME inte anger POSIX-locale kan annat format och ordning användas, enligt gällande locale.

Om -x används med -v ska standardutdata ha formatet:

"x - %s\n", <fil>

där fil är operand om sådan angivits, eller filnamnet i arkivet i annat fall.

STDERR

Standard error används endast för diagnostiska meddelanden. Diagnostik om att ett nytt arkiv skapas när -c inte är angett ska inte påverka returstatus.

OUTPUT_FILES

Arkiv är filer med ospecificerade format.

EXTENDED_DESCRIPTION

Ingen.

EXIT_STATUS

Följande returvärden gäller:

  • 0
 Kommandot lyckades.
  • >0
 Ett fel inträffade.

CONSEQUENCES_OF_ERRORS

Standard.

Följande avsnitt är informativa.

APPLICATION_USAGE

Ingen.

EXAMPLES

Inga.

RATIONALE

Arkivformatet beskrivs inte i detalj. Det är känt att det finns flera olika ar-format som inte är inbördes kompatibla. Kommandot ar ingår dock för att göra det möjligt att skapa arkiv som endast är avsedda för användning på en och samma dator. Arkivet hanteras som en fil och kan flyttas som en fil, vilket ger en möjlighet att flytta ett arkiv mellan två system som använder samma implementering av ar.

Verktyg som pax (och dess föregångare tar och cpio) tillhandahåller också "arkiv". Detta är inte en duplicering; ar tillhandahålls för att ge ett gränssnitt främst för make och kompilatorerna, baserat på historisk praxis.

I historiska implementationer krävde -q (finns på XSI-kompatibla system) inte kontroll av redan befintliga medlemmar, vilket kunde gå snabbt då ar inte kontrollerade om filerna redan fanns i arkivet. Denna beskrivning kan, men behöver inte, gälla för en helt ny implementation av verktyget.

BSD-implementationer krävde historiskt att användaren angav -s när arkivet skulle innehålla en symboltabell. Som i denna standard (POSIX.1‑2017) skapar eller uppdaterar System V en symboltabell närhelst en objektfil tas bort, läggs till eller uppdateras i arkivet.

Avsnittet OPERANDS kräver att arkivet inte trunkerar filnamn under {NAME_MAX}, eftersom vissa äldre implementationer gjorde detta, vilket orsakade oförutsedda problem. Här klargörs kravet för att undvika missförstånd.

Historiskt har System V-dokumentationen angett att alternativen -dmpqrtx inte behöver inledas med ett minustecken (-). I denna standard krävs dock att en applikation som följer standarden använder inledande minustecken.

Det archivformat som används av 4.4 BSD beskrivs här i RATIONALE som exempel. (En utförlig beskrivning av detta format följer i originaltexten men är inte en del av den formella specifikationen.)

Kommandot ar kräver att (om alla dess medlemmar är giltiga objektfiler) ar producerar ett objektkodbibliotek som länkningsprogrammet kan använda för att extrahera objektmoduler. Om länkningsprogrammet behöver en symboltabell för att slumpvis komma åt arkivet ska ar tillhandahålla den; dock krävs det inte att en symboltabell alltid finns.

BSD-alternativet -o har utelämnats. Det är ovanligt att en portabel applikation använder ar för att extrahera objektkod med exakt bevarande av modifikationstid, eftersom detta oftast saknar betydelse för make. Därför har man beslutat att extraherade filer får det aktuella klockslaget som modifikationstid.

Minst en känd implementation (för en mindre dator) kan endast hantera objektfiler, inte blandade objekt- och andra filer. Möjligheten att hantera vilken fil som helst är både historisk praxis och en rimlig förväntan.

Det diskuterades om man skulle ändra utdataformatet för ar -tv till samma som ls -l. Man avstod, eftersom det skulle bryta historisk användning. Dessutom använder ar numeriska UID/GID medan ls -l visar användarnamn och gruppnamn, vilket inte är pålitligt vid förflyttning av arkiv mellan olika system.

Texten om kombinationen -ur följer historisk praxis. Eftersom ett och samma filnamn kan referera till olika filer (t.ex. /a/foo och /b/foo) är det rimligt att ersätta filen i arkivet även när tidsstämpeln i arkivet är identisk med den i filsystemet.

FUTURE_DIRECTIONS

Inga.

SEE_ALSO

Se också avsnitt 8, Environment Variables, avsnitt 12.2, Utility Syntax Guidelines, samt unistd.h(0p) i Basdefinitionerna av POSIX.1‑2017, samt beskrivningen av {POSIX_NO_TRUNC}.

COPYRIGHT

Delar av denna text har återgivits elektroniskt från IEEE Std 1003.1-2017, Standard for Information Technology – Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc och The Open Group. Vid eventuella avvikelser mellan denna version och den ursprungliga IEEE- och The Open Group-standarden gäller originalet som norm. Originalstandarden finns tillgänglig online på http://www.opengroup.org/unix/online.html.

Eventuella tryckfel eller formateringsfel som uppträder i denna sida har sannolikt uppstått under konvertering från källfiler till man-page-format. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html.

IEEE/The Open Group               2017                            AR(1P)

Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man1/ar.1.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.