ar(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= tail(1p) = == PROLOG == Denna manualsida är en del av POSIX Programmer's Manual. Linux- implementationen av detta gränssnitt kan skilja sig (se motsvarande Linux- manualsida för detaljer om Linux-beteende), eller så kanske gränssnittet inte är implementerat på Linux. == NAMN == '''tail''' — kopiera den sista delen av en fil == SYNOPSIS == <pre> tail [-f] [-c antal|-n antal] [fil] </pre> == BESKRIVNING == Verktyget ''tail'' ska kopiera sin indatafil til...')
 
Ingen redigeringssammanfattning
Rad 1: Rad 1:
= tail(1p) =
= ar =


== PROLOG ==
'''ar''' hanterar Unix-arkivfiler, oftast statiska bibliotek som <code>libfoo.a</code>.


Denna manualsida är en del av POSIX Programmer's Manual. Linux-
== Vad det gör ==
implementationen av detta gränssnitt kan skilja sig (se motsvarande Linux-
manualsida för detaljer om Linux-beteende), eller så kanske gränssnittet inte
är implementerat på Linux.


== NAMN ==
Det kan:


'''tail''' — kopiera den sista delen av en fil
* skapa ett arkiv
* lägga till eller ersätta medlemmar
* ta bort medlemmar
* lista innehåll
* extrahera medlemmar
* skriva ut medlemmar
* flytta medlemmar inom arkivet
* bygga eller uppdatera symbolindexet


== SYNOPSIS ==
== Vanliga kommandon ==


<pre>
Den första bokstaven är operationen:
tail [-f] [-c antal|-n antal] [fil]
</pre>


== BESKRIVNING ==
* <code>r</code> — ersätt eller lägg till filer
* <code>q</code> — snabb tilläggning
* <code>t</code> — lista arkivets innehåll
* <code>x</code> — extrahera filer
* <code>d</code> — ta bort filer
* <code>p</code> — skriv ut en medlem till standardutmatning
* <code>m</code> — flytta medlemmar inne i arkivet
* <code>s</code> — skriv/uppdatera symbolindex


Verktyget ''tail'' ska kopiera sin indatafil till standardutmatningen med start
Vanliga modifierare:
vid en angiven plats.


Kopieringen ska börja vid den punkt i filen som anges av flaggorna '''-c'''
* <code>c</code> — skapa arkivet utan varning
''antal'' eller '''-n''' ''antal''. Flaggarugumentet ''antal'' ska räknas i enheter
* <code>v</code> — utförligt läge
av rader eller byte, enligt flaggorna '''-n''' och '''-c'''. Både rad- och byteräkning
* <code>u</code> — ersätt bara om filen är nyare
börjar från 1.
* <code>D</code> — deterministiska arkivmetadata
* <code>S</code> — hoppa över symboltabellen
* <code>P</code> — bevara fullständiga sökvägar
* <code>T</code> / <code>--thin</code> — skapa ett tunt arkiv


Slutstycken relativt filens slut kan sparas i en intern buffert, och kan
== Typisk användning ==
därmed vara begränsade i längd. En sådan buffert, om någon används, ska inte
vara mindre än {LINE_MAX}*10 byte.


== FLAGGOR ==
Skapa eller uppdatera ett statiskt bibliotek:


Verktyget ''tail'' ska följa Base Definitions-volymen i POSIX.1-2017, avsnitt
<pre>
12.2, ''Utility Syntax Guidelines'', med undantaget att '''+''' får kännas igen
ar rcs libmylib.a file1.o file2.o file3.o
som avgränsare för flagga liksom '''-'''.
</pre>


Följande flaggor ska stödas:
Här betyder:


; '''-c''' ''antal''
* <code>r</code> lägg till eller ersätt objektfiler
: Programmet ska säkerställa att flaggarugumentet ''antal'' är ett decimalt heltal,
* <code>c</code> skapa arkivet om det inte finns
  eventuellt med tecken. Tecknet ska påverka platsen i filen, mätt i byte,
* <code>s</code> skriv symboltabellen
  där kopieringen ska börja:


{| class="wikitable"
Lista innehållet:
! Tecken
! Kopiering börjar
|-
| +
| Relativt filens början.
|-
| -
| Relativt filens slut.
|-
| inget
| Relativt filens slut.
|}


: Programmet ska säkerställa att om tecknet i flaggarugumentet ''antal'' är
<pre>
  '''+''', så är ''antal'' ett decimalt heltal skilt från noll.
ar t libmylib.a
</pre>


: Ursprunget för räkningen ska vara 1; det vill säga, '''-c''' +1 motsvarar
Extrahera allt:
  filens första byte, '''-c''' -1 det sista.


; '''-f'''
<pre>
: Om indatafilen är en vanlig fil eller om operanden ''fil'' anger en FIFO, ska
ar x libmylib.a
  verktyget inte avslutas efter att den sista raden i indatafilen har
</pre>
  kopierats, utan läsa och kopiera ytterligare byte från indatafilen när de
  blir tillgängliga. Om ingen operand ''fil'' anges och standard in är ett rör
  eller en FIFO, ska flaggan '''-f''' ignoreras. Om indatafilen inte är en FIFO,
  ett rör eller en vanlig fil är det ospecificerat om flaggan '''-f''' ska
  ignoreras eller inte.
 
; '''-n''' ''antal''
: Denna flagga ska motsvara '''-c''' ''antal'', förutom att startplatsen i filen ska
  mätas i rader i stället för byte. Ursprunget för räkningen ska vara 1; det
  vill säga, '''-n''' +1 motsvarar filens första rad, '''-n''' -1 den sista.
 
Om varken '''-c''' eller '''-n''' anges ska '''-n''' 10 antas.
 
== OPERANDER ==
 
Följande operand ska stödas:
 
; ''fil''
: En sökväg till en indatafil. Om ingen operand ''fil'' anges ska standard in
  användas.
 
== STDIN ==
 
Standard in ska användas om ingen operand ''fil'' anges, och ska användas om
operanden ''fil'' är '''-''' och implementationen behandlar '''-''' som standard in.
I annat fall ska standard in inte användas. Se avsnittet INDATAFILER.
 
== INDATAFILER ==
 
Om flaggan '''-c''' anges kan indatafilen innehålla godtyckliga data; annars ska
indatafilen vara en textfil.
 
== MILJÖVARIABLER ==
 
Följande miljövariabler ska påverka körningen av ''tail'':
 
; ''LANG''
: Tillhandahåller ett standardvärde för internationaliseringsvariabler som är
  avaktiverade eller tomma. (Se Base Definitions-volymen i POSIX.1-2017,
  avsnitt 8.2, ''Internationalization Variables'', för prioriteten mellan
  internationaliseringsvariabler som används för att bestämma värdena för
  lokalkategorier.)
 
; ''LC_ALL''
: Om satt till ett icke-tomt strängvärde åsidosätter den värdena för alla andra
  internationaliseringsvariabler.
 
; ''LC_CTYPE''
: Bestämmer lokalen för tolkningen av byteföljder i textdata som tecken
  (till exempel enbyte- kontra flerbyte-tecken i argument och indatafiler).
 
; ''LC_MESSAGES''
: Bestämmer den lokal som ska användas för att påverka formatet och innehållet
  i diagnostiska meddelanden som skrivs till standard fel.
 
; ''NLSPATH''
: Bestämmer platsen för meddelandekataloger vid bearbetning av ''LC_MESSAGES''.


== ASYNKRONA HÄNDELSER ==
Ta bort en medlem:
 
Standard.
 
== STDOUT ==
 
Den angivna delen av indatafilen ska skrivas till standard ut.
 
== STDERR ==
 
Standard fel ska endast användas för diagnostiska meddelanden.
 
== UTDATAFILER ==
 
Inga.
 
== UTVIDGAD BESKRIVNING ==
 
Ingen.
 
== AVSLUTNINGSSTATUS ==
 
Följande avslutningsvärden ska returneras:
 
; 0
: Lyckad körning.
 
; >0
: Ett fel inträffade.
 
== FÖLJDER AV FEL ==
 
Standard.
 
''Följande avsnitt är informativa.''
 
== PROGRAMANVÄNDNING ==
 
Flaggan '''-c''' bör användas med försiktighet när indata är en textfil som
innehåller flerbyte-tecken; den kan ge utdata som inte börjar vid en
teckengräns.
 
Även om indatafilen till ''tail'' kan vara av vilken typ som helst, kanske
resultaten inte blir vad som förväntas på vissa specialfiler för tecken-
enheter eller på filtyper som inte beskrivs av System Interfaces-volymen i
POSIX.1-2017. Eftersom denna volym av POSIX.1-2017 inte specificerar den
blockstorlek som används vid inläsning behöver ''tail'' inte läsa alla data från
enheter som bara utför blocköverföringar.
 
När ''tail'' används för att behandla sökvägar, och flaggan '''-c''' inte anges,
rekommenderas att LC_ALL, eller åtminstone LC_CTYPE och LC_COLLATE, sätts till
POSIX eller C i miljön, eftersom sökvägar kan innehålla byteföljder som inte
bildar giltiga tecken i vissa lokaler; i sådana fall blir verktygets beteende
odefinierat. I POSIX-lokalen är varje byte ett giltigt enbyte-tecken, och
därmed undviks detta problem.
 
== EXEMPEL ==
 
Flaggan '''-f''' kan användas för att övervaka tillväxten hos en fil som skrivs
av någon annan process. Till exempel skriver kommandot:


<pre>
<pre>
tail -f fred
ar d libmylib.a file2.o
</pre>
</pre>


ut de sista tio raderna i filen '''fred''', följt av alla rader som läggs till i
Skriv ut en medlem till standardutmatning:
'''fred''' mellan det att ''tail'' startas och dödas. Som ytterligare ett exempel
skriver kommandot:


<pre>
<pre>
tail -f -c 15 fred
ar p libmylib.a file1.o
</pre>
</pre>


ut de sista 15 byten i filen '''fred''', följt av alla byte som läggs till i
== Tunt arkiv ==
'''fred''' mellan det att ''tail'' startas och dödas.


== MOTIVERING ==
Med <code>--thin</code> lagrar arkivet referenser till objektfiler i stället för att kopiera deras innehåll. Det gör skapandet snabbare och arkivet mindre, men originalfilerna måste finnas kvar.


Denna version av ''tail'' skapades för att möjliggöra överensstämmelse med
Exempel:
''Utility Syntax Guidelines''. Den historiska flaggan '''-b''' utelämnades på grund
av den allmänna icke-portabiliteten hos textenheter med blockstorlek. Flaggan
'''-c''' betydde historiskt ”tecken”, men i denna volym av POSIX.1-2017 anges
att den betyder ”byte”. Detta valdes för att möjliggöra rimliga
implementationer när flerbyte-tecken är möjliga; den kallades inte '''-b''' för
att undvika förväxling med den historiska '''-b'''.
 
Ursprunget för räkning av både rader och byte är 1, i enlighet med alla
utbredda historiska implementationer. Därför är ''tail'' '''-n''' +0 inte
överensstämmande användning eftersom det försöker skriva ut rad noll; men
observera att ''tail'' '''-n''' 0 överensstämmer och inte skriver ut något.
 
Tidigare versioner av standarden tillät följande former i SYNOPSIS:


<pre>
<pre>
tail -[antal][b|c|l][f] [fil]
ar rcs --thin libmylib.a file1.o file2.o
tail +[antal][b|c|l][f] [fil]
</pre>
</pre>


Dessa former specificeras inte längre av POSIX.1-2008, men kan finnas i vissa
== Noteringar ==
implementationer.
 
Begränsningen på den interna bufferten är en kompromiss mellan den historiska
System V-implementationen på 4096 byte och BSD:s 32768 byte.
 
Flaggan '''-f''' har implementerats som en slinga som sover i 1 sekund och
kopierar alla byte som är tillgängliga. Detta är tillräckligt, men om
effektivare metoder för att avgöra när nya data är tillgängliga utvecklas
uppmuntras implementationer att använda dem.
 
Historisk dokumentation visar att ''tail'' ignorerar flaggan '''-f''' om
indatafilen är ett rör (rör och FIFO på system som stöder FIFO). På BSD-baserade
system har detta varit sant; på System V-baserade system var det sant när
indata togs från standard in, men den ignorerade inte flaggan '''-f''' om en FIFO
namngavs som operanden ''fil''. Eftersom flaggan '''-f''' inte är användbar på rör
och alla historiska implementationer ignorerar '''-f''' om ingen operand ''fil''
anges och standard in är ett rör, kräver denna volym av POSIX.1-2017 detta
beteende. Eftersom flaggan '''-f''' däremot är användbar på en FIFO kräver denna
volym av POSIX.1-2017 också att om en FIFO namnges, får flaggan '''-f''' inte
ignoreras. Tidigare versioner av denna standard angav inget krav för fallet
där ingen operand ''fil'' anges och standard in är en FIFO. Standarden har
uppdaterats för att återspegla nuvarande praxis, som är att behandla detta
fall på samma sätt som ett rör på standard in. Även om historiskt beteende
inte ignorerar flaggan '''-f''' för andra filtyper är detta ospecificerat så att
implementationer tillåts ignorera flaggan '''-f''' om det är känt att filen inte
kan utökas.
 
== FRAMTIDA INRIKTNING ==
 
Ingen.
 
== SE ÄVEN ==
 
head(1p)


Base Definitions-volymen i POSIX.1-2017, kapitel 8, ''Environment Variables'',
* <code>ar</code> underhåller vanligtvis ett symbolindex för snabbare länkning.
avsnitt 12.2, ''Utility Syntax Guidelines''
* <code>ranlib libfoo.a</code> är ungefär samma sak som <code>ar s libfoo.a</code>.
* Fullständiga sökvägar med <code>P</code> är GNU-specifika och mindre portabla.


== COPYRIGHT ==
== Snabb minnesregel ==


Delar av denna text är återtryckta och återgivna i elektronisk form från IEEE
* För statiska bibliotek: '''<code>ar rcs libnamn.a objektfiler...</code>'''
Std 1003.1-2017, Standard for Information Technology -- Portable Operating
* För att inspektera: '''<code>ar t</code>'''
System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018
* För att extrahera: '''<code>ar x</code>'''
Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. Vid varje avvikelse mellan denna version och
den ursprungliga IEEE- och The Open Group-standarden är det den ursprungliga
IEEE- och The Open Group-standarden som är det avgörande dokumentet. Original-
standarden kan erhållas online på
http://www.opengroup.org/unix/online.html .


Eventuella typografiska fel eller formateringsfel som förekommer i denna sida
har med största sannolikhet uppstått vid konverteringen av källfilerna till
man-sidesformat. För att rapportera sådana fel, se
https://www.kernel.org/doc/man-pages/reporting_bugs.html .


= Sidslut =
= Sidslut =

Versionen från 25 april 2026 kl. 12.01

ar

ar hanterar Unix-arkivfiler, oftast statiska bibliotek som libfoo.a.

Vad det gör

Det kan:

  • skapa ett arkiv
  • lägga till eller ersätta medlemmar
  • ta bort medlemmar
  • lista innehåll
  • extrahera medlemmar
  • skriva ut medlemmar
  • flytta medlemmar inom arkivet
  • bygga eller uppdatera symbolindexet

Vanliga kommandon

Den första bokstaven är operationen:

  • r — ersätt eller lägg till filer
  • q — snabb tilläggning
  • t — lista arkivets innehåll
  • x — extrahera filer
  • d — ta bort filer
  • p — skriv ut en medlem till standardutmatning
  • m — flytta medlemmar inne i arkivet
  • s — skriv/uppdatera symbolindex

Vanliga modifierare:

  • c — skapa arkivet utan varning
  • v — utförligt läge
  • u — ersätt bara om filen är nyare
  • D — deterministiska arkivmetadata
  • S — hoppa över symboltabellen
  • P — bevara fullständiga sökvägar
  • T / --thin — skapa ett tunt arkiv

Typisk användning

Skapa eller uppdatera ett statiskt bibliotek:

ar rcs libmylib.a file1.o file2.o file3.o

Här betyder:

  • r lägg till eller ersätt objektfiler
  • c skapa arkivet om det inte finns
  • s skriv symboltabellen

Lista innehållet:

ar t libmylib.a

Extrahera allt:

ar x libmylib.a

Ta bort en medlem:

ar d libmylib.a file2.o

Skriv ut en medlem till standardutmatning:

ar p libmylib.a file1.o

Tunt arkiv

Med --thin lagrar arkivet referenser till objektfiler i stället för att kopiera deras innehåll. Det gör skapandet snabbare och arkivet mindre, men originalfilerna måste finnas kvar.

Exempel:

ar rcs --thin libmylib.a file1.o file2.o

Noteringar

  • ar underhåller vanligtvis ett symbolindex för snabbare länkning.
  • ranlib libfoo.a är ungefär samma sak som ar s libfoo.a.
  • Fullständiga sökvägar med P är GNU-specifika och mindre portabla.

Snabb minnesregel

  • För statiska bibliotek: ar rcs libnamn.a objektfiler...
  • För att inspektera: ar t
  • För att extrahera: ar x


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 PC Service som har sponsrat Linux.se med webbhotell.