|
|
| 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 = |