ar

Från Wiki.linux.se
(Omdirigerad från ar(1p))
Hoppa till navigering Hoppa till sök

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.