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...')
 
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 1: Rad 1:
= tail(1p) =
'''ar''' hanterar Unix-arkivfiler, oftast statiska bibliotek som <code>libfoo.a</code>.


== PROLOG ==
== Vad det gör ==


Denna manualsida är en del av POSIX Programmer's Manual. Linux-
Det kan:
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 ==
* 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


'''tail''' — kopiera den sista delen av en fil
== Vanliga kommandon ==


== SYNOPSIS ==
Den första bokstaven är operationen:


<pre>
* <code>r</code> — ersätt eller lägg till filer
tail [-f] [-c antal|-n antal] [fil]
* <code>q</code> — snabb tilläggning
</pre>
* <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


== BESKRIVNING ==
Vanliga modifierare:


Verktyget ''tail'' ska kopiera sin indatafil till standardutmatningen med start
* <code>c</code> — skapa arkivet utan varning
vid en angiven plats.
* <code>v</code> — utförligt läge
* <code>u</code> — ersätt bara om filen är nyare
* <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


Kopieringen ska börja vid den punkt i filen som anges av flaggorna '''-c'''
== Typisk användning ==
''antal'' eller '''-n''' ''antal''. Flaggarugumentet ''antal'' ska räknas i enheter
av rader eller byte, enligt flaggorna '''-n''' och '''-c'''. Både rad- och byteräkning
börjar från 1.


Slutstycken relativt filens slut kan sparas i en intern buffert, och kan
Skapa eller uppdatera ett statiskt bibliotek:
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 ==
<pre>
ar rcs libmylib.a file1.o file2.o file3.o
</pre>


Verktyget ''tail'' ska följa Base Definitions-volymen i POSIX.1-2017, avsnitt
Här betyder:
12.2, ''Utility Syntax Guidelines'', med undantaget att '''+''' får kännas igen
som avgränsare för flagga liksom '''-'''.


Följande flaggor ska stödas:
* <code>r</code> lägg till eller ersätt objektfiler
* <code>c</code> skapa arkivet om det inte finns
* <code>s</code> skriv symboltabellen


; '''-c''' ''antal''
Lista innehållet:
: Programmet ska säkerställa att flaggarugumentet ''antal'' är ett decimalt heltal,
  eventuellt med tecken. Tecknet ska påverka platsen i filen, mätt i byte,
  där kopieringen ska börja:


{| class="wikitable"
<pre>
! Tecken
ar t libmylib.a
! Kopiering börjar
</pre>
|-
| +
| Relativt filens början.
|-
| -
| Relativt filens slut.
|-
| inget
| Relativt filens slut.
|}


: Programmet ska säkerställa att om tecknet i flaggarugumentet ''antal'' är
Extrahera allt:
  '''+''', så är ''antal'' ett decimalt heltal skilt från noll.


: Ursprunget för räkningen ska vara 1; det vill säga, '''-c''' +1 motsvarar
<pre>
  filens första byte, '''-c''' -1 det sista.
ar x libmylib.a
</pre>


; '''-f'''
Ta bort en medlem:
: Om indatafilen är en vanlig fil eller om operanden ''fil'' anger en FIFO, ska
  verktyget inte avslutas efter att den sista raden i indatafilen har
  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 ==
 
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'',
avsnitt 12.2, ''Utility Syntax Guidelines''


== COPYRIGHT ==
* <code>ar</code> underhåller vanligtvis ett symbolindex för snabbare länkning.
* <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.


Delar av denna text är återtryckta och återgivna i elektronisk form från IEEE
== Snabb minnesregel ==
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 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
* För statiska bibliotek: '''<code>ar rcs libnamn.a objektfiler...</code>'''
har med största sannolikhet uppstått vid konverteringen av källfilerna till
* För att inspektera: '''<code>ar t</code>'''
man-sidesformat. För att rapportera sådana fel, se
* För att extrahera: '''<code>ar x</code>'''
https://www.kernel.org/doc/man-pages/reporting_bugs.html .


= Sidslut =
= Sidslut =

Nuvarande version från 25 april 2026 kl. 12.01

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.