Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ar - Bibliotheken verwalten

&pagelevel(4)&pagelevel

(create and maintain library archives)


ar verwaltet Bibliotheken.

Im Einzelnen können Sie mit ar folgende Verwaltungsaufgaben erledigen. Zu jeder Verwaltungsaufgabe ist/sind die entsprechende(n) Hauptoption(en) in der Liste angegeben:

  • Bibliothek erstellen: -q oder -r

  • Datei schnell in die Bibliothek eintragen : -q

  • Datei ersetzen bzw. eintragen: -r

  • Datei aus der Bibliothek entfernen: -d

  • Datei in der Bibliothek verschieben: -m

  • Dateiinhalt ausgeben: -p

  • Inhaltsverzeichnis der Bibliothek ausgeben: -t

  • Datei aus der Bibliothek herauskopieren : -x

  • Symbole ausgeben: -S


Syntax


ar[ -V] hautptoption[zusatzoption]...[position] bibliothek[ datei]...

-V

ar gibt seine Versionsnummer auf die Standard-Fehlerausgabe aus.

Hauptoptionen

Bei einem ar-Aufruf müssen Sie genau eine Hauptoption angeben (-d, -m, -p, -q, -r, -t, -x oder -S). Der Hauptoption können eine oder mehrere Zusatzoptionen folgen.

-d

(d - delete)

ar entfernt die angegebenen Dateien aus der Bibliothek. Sind keine Dateien angegeben, wird keine Datei entfernt.

-m

(m - move)

ar verschiebt die angegebenen Dateien innerhalb der Bibliothek.

Mit position:
Die Dateien werden hinter (a) bzw. vor (b oder i) der Datei posdatei eingefügt (siehe position).

Ohne position:
Die Dateien werden am Ende der Bibliothek eingefügt.

-p

(p - print)

ar gibt den Inhalt der angegebenen Dateien aus. Sind keine Dateien angegeben, gibt ar den Inhalt aller Dateien aus.

-q

(q - quickly)

ar trägt die angegebenen Dateien „schnell“ in die Bibliothek ein, d.h.


  • Wenn die Bibliothek bereits existiert, hängt ar die Dateien ans Ende der Bibliothek an, ohne zu überprüfen, ob die Dateien bereits in der Bibliothek vorhanden sind.
  • Wenn die Bibliothek noch nicht existiert, wird sie erstellt.

Angaben für position sind nicht erlaubt.

Die Option -q ist sinnvoll, wenn Sie große Bibliotheken schrittweise erstellen wollen.

-r

(r - replace)

Diese Option hat drei verschiedene Wirkungen, abhängig davon, ob dieangegebene Bibliothek existiert und die angegebenen Dateien enthält:


  • Wenn die Bibliothek existiert und die Dateien enthält, ersetzt ar die angegebenen Dateien.
  • Wenn die Bibliothek existiert und eine der angegebenen Dateien nicht enthält, trägt ar diese Datei in die Bibliothek ein.
  • Wenn die Bibliothek noch nicht existiert, erstellt ar die Bibliothek aus den angegebenen Dateien.

Mit Zusatzoption u:

ar ersetzt eine Datei in der Bibliothek nur dann, wenn die beim ar-Aufruf angegebene Datei neueren Datums ist als die Version, die in der Bibliothek steht.
(Das Datum bezieht sich auf den Zeitpunkt der letzten Änderung.)

Mit position:
Dateien, die noch nicht in der Bibliothek enthalten sind, werden hinter (a) bzw. vor (b oder i) der Datei posdatei eingefügt (siehe „position“).

Ohne position:
Dateien, die noch nicht in der Bibliothek enthalten sind, werden am Ende der Bibliothek eingefügt.

-t

(t - table)

ar gibt ein Inhaltsverzeichnis der Bibliothek aus. Sind keine Dateien angegeben, listet ar alle Dateien der Bibliothek auf, sonst nur die angegebenen Dateien.

-x

(x - extract)

ar kopiert die angegebenen Dateien aus der Bibliothek heraus. Sind keine Dateien angegeben, kopiert ar alle Dateien heraus. Die Bibliothek wird dadurch nicht verändert.

-S

(S – Symbols)

ar listet alle Symbole der angegebenen Dateien auf. Sind keine Dateien angegeben, listet ar alle Symbole auf, die in der Bibliothek enthalten sind. Die Bibliothek wird dadurch nicht verändert.

Zusatzoptionen

c

(c - create)

Die Standard-Meldung von ar beim Erstellen einer Bibliothek wird unterdrückt.

C

(C - Create)

Herauskopierte Dateien werden nicht durch gleichnamige Datein im Dateisystem überschrieben. Diese Option ist im Zusammenhang mit der Zusatzoption -T sinnvoll, damit dort verkürzte Dateinamen nicht mit dem gleichen Präfix im Dateisystem abgelegt werden.

T

(T - truncate)

Verkürzen des Dateinamens. Wenn Dateien aus einer Bibliothek herauskopiert werden, können ihre Namen länger sein, als das Dateisystem zulässt. Standardmäßig wird ein Fehler ausgegeben und die Datei nicht herauskopiert, wenn der Dateiname zu lang ist.

l

(l - local)

Kann angegeben werden, wird aber ignoriert.

s

(s - symbol table)

ar erstellt die Symboltabelle der Bibliothek neu, jedoch nur dann, wenn neue Objekte in die Bibliothek aufgenommen bzw. bestehende Objekte ersetzt wurden.

u

(u - update)

Siehe Hauptoption -r.

v

(v - verbose)

ar meldet, welche Datei es gerade in die Bibliothek einträgt, in der Bibliothek verschiebt, aus der Bibliothek entfernt usw.. Wenn Sie v zusammen mit -t verwenden, gibt ar ähnlich wie ls -l (siehe ls) ausführliche Informationen über die Dateien aus.


position

position legt fest, wo eine Datei in die Bibliothek eingefügt wird. position kann sein:

posdatei

ar fügt die Dateien hinter posdatei ein.

posdatei
posdatei

ar fügt die Dateien vor posdatei ein.

posdatei ist der Name einer Datei, die in der Bibliothek steht.


bibliothek

Name der Bibliothek, die erstellt bzw. bearbeitet werden soll.


datei

Name der Datei, die aufgelistet, in die Bibliothek eingetragen, aus der Bibliothek entfernt, aus der Bibliothek herauskopiert, in der Bibliothek verschoben bzw. deren Inhalt ausgegeben werden soll.

Sie können mehrere Dateien angeben. Geben Sie bei einem ar-Aufruf mit Hauptoption -q oder -r dieselbe Datei mehrmals an, trägt ar diese Datei auch mehrmals in die Bibliothek ein. Wenn mehrere Dateien mit gleichem Namen in der Bibliothek enthalten sind, und Sie ar ohne Positionsangabe verwenden, wird auf die erste Datei mit diesem Namen zugegriffen (und nicht z.B. auf die neueste oder älteste etc).

Aufbau einer Bibliothek

Eine Bibliothek ist eine Datei, in der mehrere Dateien zusammengefasst sind. Gemäß Konvention endet der Name einer Bibliothek mit .a. Der Sinn einer Bibliothek besteht darin, Dateien zusammenzufassen, die bzgl. ihrer Verwendung eine Gruppe bilden. Die Verwendung von Bibliotheken erleichtert die Verwaltung der Dateien, da Sie oft nur die Bibliothek angeben müssen, statt alle Elemente einzeln aufzuführen.

Sehr häufig sind die Elemente einer Bibliothek Objektmodule, die üblicherweise zu einem Programm oder Programmsystem gehören.

Die Magic-Zeichenkette (magic string) und der Dateivorspann (header), die ar benutzt, bestehen aus druckbaren ASCII-Zeichen. Enthält die Bibliothek nur druckbare Dateien, so ist die ganze Bibliothek druckbar.

Wenn ar eine Bibliothek erzeugt, dann erzeugt es den Dateivorspann (header) in einem Format, das über alle Rechner portabel ist.

Enthält die Bibliothek mindestens eine Objektdatei, erstellt und verwaltet ar eine Symboltabelle. Der Binder ld benutzt die Symboltabelle, um bei mehrfach notwendigem Durchlaufen der Bibliothek dieses Durchlaufen zu beschleunigen. Die Symboltabelle steht in einer eigenen Datei, die immer die erste Datei in der Bibliothek ist. Auf diese Datei können Sie nicht zugreifen.

Es wird so weit als möglich versucht, nur im virtuellen Arbeitsspeicher zu arbeiten und das Auslagern von Elementen in temporäre Dateien zu vermeiden. Gelingt dies nicht, so werden temporäre Dateien angelegt, was aber nur im Falle der Hauptoption –m notwendig ist. Für den Ablageort der temporären Dateien gelten dann die folgenden Prioritäten:

  1. das aktuelle Verzeichnis

  2. das in der Variablen TMPDIR angegebene Verzeichnis

  3. das Verzeichnis /tmp

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos ar:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_TIME

Legt das Format der Datums- und Zeitangaben bei der Auflistung des Archivinhalts mit der Option v fest.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien).

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.


Beispiel 1

Eine Bibliothek schnell erstellen:

$ ar -qv archiv.a atoi.o itoa.o
ar: creating archiv.a
a - atoi.o
a - itoa.o

ar erstellt die Bibliothek archiv.a aus den Dateien atoi.o und itoa.o. Die Zusatzoption v bewirkt, dass ar die Namen der eingetragenen Dateien ausgibt.

Beispiel 2

Eine neue Datei an einer angegebenen Stelle in eine Bibliothek einfügen:

$ ar -rvb atoi.o archiv.a atof.o
a - atof.o

ar kopiert atof.o vor atoi.o in die Bibliothek archiv.a.


Beispiel 3

Inhaltsverzeichnis der Bibliothek ausgeben:

$ ar -tv archiv.a
rw-r--r-- 104/     1      2276 Jul 13 12:17 2008 atof.o
rw-r--r-- 104/     1       759 Jul 13 12:17 2008 atoi.o
rw-r--r-- 104/     1      1280 Jul 13 12:17 2008 itoa.o


Beispiel 4

Eine Datei aus der Bibliothek holen:

$ ar -xv archiv.a atoi.o
x - atoi.o

Die Datei atoi.o wird aus der Bibliothek archiv.a in das aktuelle Dateiverzeichnis kopiert. Die Kopie heißt auch atoi.o.

Siehe auch

cpio, pax, tar