Forstå Linux-kommandoen: Ar
De GNUar program skaper, endrer og trekker ut elementer fra filarkiver. An arkiv er en enkelt fil som inneholder en samling av andre filer i en struktur som gjør det mulig å hente de originale individuelle filene (kalt medlemmer av arkivet).
Oversikt

De originale filenes innhold, modus (tillatelser), tidsstempel, eier og gruppe er bevart i arkivet og kan gjenopprettes ved utpakking.
GNU ar kan opprettholde arkiver hvis medlemmer har navn av hvilken som helst lengde; men avhengig av hvordan ar er konfigurert på systemet ditt, kan en grense på medlemsnavnslengden pålegges for kompatibilitet med arkivformater som vedlikeholdes med andre verktøy. Hvis det finnes, er grensen ofte 15 tegn.
Ar regnes som et binært verktøy fordi arkiver av denne typen oftest brukes som biblioteker holder ofte nødvendige subrutiner.
Ar oppretter en indeks til symbolene som er definert i flyttbare objektmoduler i arkivet når du spesifiserer modifikatoren s. Når den er opprettet, blir denne indeksen oppdatert i arkivet når som helst
Du kan bruke nm -s eller nm --print-armap for å liste denne indekstabellen. Hvis et arkiv mangler tabellen, kan en annen form for ar kalt ranlib legger bare til tabellen.
GNU ar er designet for å være kompatibel med to forskjellige fasiliteter. Kontroller aktiviteten ved hjelp av kommandolinjealternativer, som de forskjellige variantene av ar på Unix-systemer; eller, hvis du spesifiserer singelen kommando-linjealternativ -M, kan du kontrollere det med et skript levert fra standard input.
Synopsis
Kommandoen har følgende generelle form:
ar [-X32_64] [-]p[mod [relpos] [count]] arkiv [medlem...]
Alternativer
GNU ar lar deg blande operasjonskoden s og modifikasjonsflagg mod i hvilken som helst rekkefølge, innenfor det første kommandolinjeargumentet.
Hvis du ønsker, kan du begynne det første kommandolinjeargumentet med en bindestrek.
De s keyletter spesifiserer hvilken operasjon som skal utføres; det kan være en av følgende, men du må spesifisere bare én av dem:
- d: Slett moduler fra arkivet. Angi navnene på modulene som skal slettes medlem; arkivet er urørt hvis du angir ingen filer å slette. Hvis du spesifiserer v modifikator, ar viser hver modul etter hvert som den slettes.
- m: Bruk denne operasjonen til å bevege seg medlemmer i et arkiv. Rekkefølgen av medlemmer i et arkiv kan utgjøre en forskjell i hvordan programmer kobles sammen ved hjelp av biblioteket, hvis et symbol er definert i mer enn ett medlem. Hvis ingen modifikatorer brukes med m, alle medlemmer du navngir i medlem argumenter flyttes til slutt av arkivet; du kan bruke en, b, eller Jeg modifikatorer for å flytte dem til et spesifisert sted i stedet.
- s: Skrive ut de angitte medlemmene av arkivet, til standard utdatafil. Hvis v modifikator er spesifisert, vis medlemsnavnet før du kopierer innholdet til standardutdata. Hvis du oppgir nr medlem argumenter, skrives alle filene i arkivet ut.
- q: Rask vedlegg; Historisk sett, legg til filene medlem til slutten av arkiv, uten å se etter erstatning. Modifikatorene en, b, og Jeg gjøre ikke påvirke denne operasjonen; nye medlemmer plasseres alltid på slutten av arkivet. Modifikatoren v gjør at ar liste opp hver fil slik den er lagt til. Siden poenget med denne operasjonen er hastighet, oppdateres ikke arkivets symboltabellindeks, selv om den allerede eksisterte; du kan bruke ar s eller ranlib eksplisitt for å oppdatere symboltabellindeksen. Imidlertid forutsetter for mange forskjellige systemer at rask vedlegg gjenoppbygger indeksen, så GNU ar implementerer "q" som et synonym for "r".
- r: Sett inn filene medlem inn i arkiv (med erstatning). Denne operasjonen skiller seg fra q ved at eventuelle tidligere eksisterende medlemmer slettes hvis navnene deres samsvarer med de som legges til. Hvis en av filene er navngitt i medlem eksisterer ikke, ar viser en feilmelding og lar alle eksisterende medlemmer av arkivet samsvare med det navnet uforstyrret. Som standard legges nye medlemmer til på slutten av filen, men du kan bruke en av modifikatorene en, b, eller Jeg å be om plassering i forhold til et eksisterende medlem. Modifikatoren v brukt med denne operasjonen fremkaller en linje med utdata for hver fil som settes inn, sammen med en av bokstavene en eller r for å indikere om filen ble lagt til (ingen gammelt medlem slettet) eller erstattet.
- t: Vis a bord liste innholdet i arkiv, eller de av filene som er oppført i medlem som finnes i arkivet. Normalt vises bare medlemsnavnet; hvis du også vil se moduser (tillatelser), tidsstempel, eier, gruppe og størrelse, kan du be om det ved å spesifisere v modifikator. Hvis du ikke spesifiserer en medlem, er alle filene i arkivet oppført. Hvis det er mer enn én fil med samme navn (si, fie) i et arkiv (si bl.a), ar t b.a fie viser bare den første instansen; for å se dem alle, må du be om en fullstendig liste – i vårt eksempel, ar t bl.a.
- x: Ekstrakt medlemmer (navngitt medlem) fra arkivet. Bruke v modifikator med denne operasjonen for å be om det ar liste opp hvert navn etter hvert som det trekker det ut. Hvis du ikke spesifiserer en medlem, er alle filene i arkivet pakket ut.
Flere modifikatorer kan umiddelbart følge s nøkkelbokstav, for å spesifisere variasjoner av en operasjons virkemåte:
- en: Legg til nye filer etter et eksisterende medlem av arkivet. Hvis du bruker modifikatoren en, må navnet på et eksisterende arkivmedlem være tilstede som relpos argument, før arkiv spesifikasjon.
- b: Legg til nye filer før et eksisterende medlem av arkivet. Hvis du bruker modifikatoren b, må navnet på et eksisterende arkivmedlem være tilstede som relpos argument, før arkiv spesifikasjon (samme som Jeg).
- c: Skape arkivet. Det angitte arkivet opprettes alltid hvis det ikke fantes, når du ber om en oppdatering. Men en advarsel utstedes med mindre du spesifiserer på forhånd at du forventer å lage den, ved å bruke denne modifikatoren.
- f: Kutt av navn i arkivet. GNU ar vil normalt tillate filnavn uansett lengde, noe som tvinger den til å lage arkiver som ikke er kompatible med ar program på noen systemer. Hvis kompatibilitet er et problem, f modifikator kan brukes til å avkorte filnavn når du legger dem i arkivet.
- Jeg: Sett inn nye filer før et eksisterende medlem av arkivet. Hvis du bruker modifikatoren Jeg, må navnet på et eksisterende arkivmedlem være tilstede som relpos argument, før arkiv spesifikasjon (samme som b).
- l: Denne modifikatoren er akseptert, men ikke brukt.
- N: Bruker telle parameter. Dette brukes hvis det er flere oppføringer i arkivet med samme navn. Trekk ut eller slett forekomst telle av fornavnet fra arkivet.
- o: Bevar opprinnelig datoene til medlemmene når de trekkes ut. Hvis du ikke spesifiserer denne modifikatoren, vil filer som er hentet fra arkivet stemples med tidspunktet for utvinning.
- P: Bruk hele banenavnet når du matcher navn i arkivet. GNU ar kan ikke opprette et arkiv med et fullstendig banenavn, men andre arkivskapere kan. Dette alternativet vil forårsake GNU ar å matche filnavn ved å bruke et fullstendig banenavn, noe som kan være praktisk når du trekker ut en enkelt fil fra et arkiv opprettet av et annet verktøy.
- s: Skriv en objektfilindeks inn i arkivet, eller oppdater en eksisterende, selv om ingen annen endring er gjort i arkivet. Du kan bruke dette modifikasjonsflagget enten med hvilken som helst operasjon eller alene. Løping ar s på et arkiv tilsvarer å kjøre ranlib på den.
- S: Ikke generer en arkivsymboltabell. Denne innstillingen kan øke hastigheten på å bygge et stort bibliotek i flere trinn. Det resulterende arkivet kan ikke brukes med linkeren. For å bygge en symboltabell må du utelate S modifikator ved siste utførelse av ar, eller du må løpe ranlib på arkivet.
- u: Normalt, ar r... setter inn alle filene som er oppført i arkivet. Hvis du ønsker å sette inn kun de av filene du viser som er nyere enn eksisterende medlemmer med samme navn, bruk denne modifikatoren. De u modifikator er kun tillatt for operasjonen r (erstatte). Spesielt kombinasjonen qu er ikke tillatt, siden kontroll av tidsstemplene ville miste enhver hastighetsfordel fra operasjonen q.
- v: Denne modifikatoren ber om ordrik versjon av en operasjon. Mange operasjoner vises tilleggsinformasjon, for eksempel filnavn behandlet, når modifikatoren v er vedlagt.
- V: Denne modifikatoren viser versjonsnummeret til ar.
Bruke Mann kommando (% Mann) for å se hvordan en kommando brukes på din spesielle datamaskin.
Andre former for arkivering
Linux støtter mange forskjellige metoder for arkivering av filer. For eksempel er ZIP-filer på tvers av plattformer. Selv om ar er nyttig for raske lokale arkiver, vurder alternative formater hvis du planlegger å dele arkivet med noen som bruker Windows.