Den Linux-Befehl verstehen: Ar

Die GNUar Programm schafft, modifiziert und extrahiert Elemente aus Dateiarchiven. Ein Archiv ist eine einzelne Datei mit einer Sammlung anderer Dateien in einer Struktur, die es ermöglicht, die ursprünglichen Einzeldateien (genannt Mitglieder des Archivs).

Überblick

Linux ar-Befehl

Inhalt, Modus (Berechtigungen), Zeitstempel, Besitzer und Gruppe der Originaldateien bleiben im Archiv erhalten und können beim Extrahieren wiederhergestellt werden.

GNU ar kann Archive führen, deren Mitglieder Namen beliebiger Länge haben; jedoch je nachdem wie ar auf Ihrem System konfiguriert ist, kann aus Gründen der Kompatibilität mit Archivformaten, die mit anderen Tools verwaltet werden, eine Beschränkung der Länge des Mitgliedsnamens auferlegt werden. Falls vorhanden, beträgt das Limit oft 15 Zeichen.

Ar wird als binäres Dienstprogramm angesehen, da Archive dieser Art am häufigsten als Bibliotheken halten häufig benötigte Unterprogramme.

Ar erstellt einen Index zu den Symbolen, die in verschiebbaren Objektmodulen im Archiv definiert sind, wenn Sie den Modifikator angeben 

S. Nach der Erstellung wird dieser Index im Archiv jedes Mal aktualisiert ar nimmt eine Änderung des Inhalts vor (mit Ausnahme der Q Update-Vorgang). Ein Archiv mit einem solchen Index beschleunigt die Verknüpfung mit der Bibliothek und ermöglicht es Routinen in der Bibliothek, sich ohne Rücksicht auf ihre Platzierung im Archiv gegenseitig aufzurufen.

Sie können verwenden nm -s oder nm --print-armap um diese Indextabelle aufzulisten. Wenn einem Archiv die Tabelle fehlt, kann eine andere Form von ar namens ranlib fügt nur die Tabelle hinzu.

GNU ar ist so konzipiert, dass sie mit zwei verschiedenen Einrichtungen kompatibel ist. Steuern Sie seine Aktivität mit Befehlszeilenoptionen, wie den verschiedenen Varianten von ar An Unix-Systeme; oder, wenn Sie die Single angeben Befehl-Linienoption -M, können Sie es mit einem Skript steuern, das von der Standardeingabe bereitgestellt wird.

Zusammenfassung

Der Befehl hat die folgende allgemeine Form:

ar [-X32_64] [-]p[mod [relpos] [count]] Archiv [Mitglied...] 

Optionen

GNU ar ermöglicht es Ihnen, den Betriebscode zu mischen P und Modifikator-Flags mod in beliebiger Reihenfolge innerhalb des ersten Befehlszeilenarguments.

Wenn Sie möchten, können Sie das erste Befehlszeilenargument mit einem Bindestrich beginnen.

Die P keyletter gibt an, welche Operation ausgeführt werden soll; Es kann eine der folgenden Optionen sein, Sie müssen jedoch nur eine davon angeben:

  • D: Löschen Module aus dem Archiv. Geben Sie die Namen der zu löschenden Module an als Mitglied; das Archiv bleibt unberührt, wenn Sie keine zu löschenden Dateien angeben. Wenn Sie die v Modifikator, ar listet jedes Modul beim Löschen auf.
  • m: Verwenden Sie diesen Vorgang, um Bewegung Mitglieder in einem Archiv. Die Reihenfolge der Elemente in einem Archiv kann sich auf die Verknüpfung von Programmen mit der Bibliothek auswirken, wenn ein Symbol in mehr als einem Element definiert ist. Wenn keine Modifikatoren mit verwendet werden m, alle Mitglieder, die Sie in der Mitglied Argumente werden in die verschoben Ende des Archivs; du kannst den... benutzen ein, B, oder ich Modifikatoren, um sie stattdessen an einen bestimmten Ort zu verschieben.
  • P: Drucken die angegebenen Mitglieder des Archivs in die Standardausgabedatei. Wenn die v Modifier angegeben ist, zeigen Sie den Membernamen an, bevor Sie seinen Inhalt in die Standardausgabe kopieren. Wenn Sie nein angeben Mitglied Argumente werden alle Dateien im Archiv gedruckt.
  • Q: Schnell anhängen; Historisch gesehen, fügen Sie die Dateien hinzu Mitglied bis zum ende von Archiv, ohne auf Ersatz zu prüfen. Die Modifikatoren ein, B, und ich tun nicht diese Operation beeinflussen; neue Mitglieder werden immer am Ende des Archivs platziert. Der Modifikator v macht ar listet jede Datei so auf, wie sie angehängt wird. Da es bei dieser Operation auf Geschwindigkeit ankommt, wird der Symboltabellenindex des Archivs nicht aktualisiert, selbst wenn er bereits vorhanden war; du kannst verwenden ähm oder ranlib den Symboltabellenindex explizit zu aktualisieren. Allerdings gehen zu viele verschiedene Systeme davon aus, dass schnelles Anhängen den Index neu erstellt, daher implementiert GNU ar "q" als Synonym für "r".
  • R: Dateien einfügen Mitglied hinein Archiv (mit Ersatz). Dieser Vorgang unterscheidet sich von Q, dass alle zuvor bestehenden Mitglieder gelöscht werden, wenn ihre Namen mit denen übereinstimmen, die hinzugefügt werden. Wenn eine der Dateien mit dem Namen in Mitglied ist nicht vorhanden, ar zeigt eine Fehlermeldung an und lässt alle vorhandenen Mitglieder des Archivs, die diesem Namen entsprechen, ungestört. Standardmäßig werden neue Elemente am Ende der Datei hinzugefügt, aber Sie können einen der Modifikatoren verwenden ein, B, oder ich um eine Platzierung relativ zu einem bestehenden Mitglied zu beantragen. Der Modifikator v Wird mit dieser Operation verwendet, wird für jede eingefügte Datei eine Ausgabezeile zusammen mit einem der Buchstaben ein oder R um anzugeben, ob die Datei angehängt (kein altes Mitglied gelöscht) oder ersetzt wurde.
  • T: Anzeige a Tisch Auflistung der Inhalte von Archiv, oder die der in aufgeführten Dateien Mitglied die im Archiv vorhanden sind. Normalerweise wird nur der Mitgliedsname angezeigt; Wenn Sie auch die Modi (Berechtigungen), Zeitstempel, Besitzer, Gruppe und Größe sehen möchten, können Sie dies anfordern, indem Sie auch die v Modifikator. Wenn Sie a. nicht angeben Mitglied, werden alle Dateien im Archiv aufgelistet. Wenn mehr als eine Datei mit demselben Namen vorhanden ist (z. fie) in einem Archiv (sagen wir b.a), ar t b.a fie listet nur die erste Instanz auf; Um sie alle zu sehen, müssen Sie eine vollständige Liste anfordern – in unserem Beispiel ar t b.a.
  • x: Extrakt Mitglieder (genannt Mitglied) aus dem Archiv. Verwenden Sie die v Modifizierer mit dieser Operation, um das anzufordern ar Listen Sie jeden Namen auf, während er ihn extrahiert. Wenn Sie a. nicht angeben Mitglied, werden alle Dateien im Archiv extrahiert.

Mehrere Modifikatoren können unmittelbar auf die P keyletter, um Variationen des Verhaltens einer Operation anzugeben:

  • ein: Neue Dateien hinzufügen nach ein bestehendes Mitglied des Archivs. Wenn Sie den Modifikator verwenden ein, muss der Name eines bestehenden Archivmitglieds als relpos Argument, vor dem Archiv Spezifikation.
  • B: Neue Dateien hinzufügen Vor ein bestehendes Mitglied des Archivs. Wenn Sie den Modifikator verwenden B, muss der Name eines bestehenden Archivmitglieds als relpos Argument, vor dem Archiv Spezifikation (gleich wie ich).
  • C: Schaffen das Archiv. Das angegebene Archiv wird immer angelegt, wenn es noch nicht existierte, wenn Sie ein Update anfordern. Es wird jedoch eine Warnung ausgegeben, es sei denn, Sie geben im Voraus an, dass Sie diese erstellen möchten, indem Sie diesen Modifikator verwenden.
  • F: Namen im Archiv abschneiden. GNU ar erlaubt normalerweise Dateinamen beliebiger Länge und zwingt es, Archive zu erstellen, die nicht mit dem ar Programm auf einigen Systemen. Wenn Kompatibilität ein Problem ist, F modifier kann verwendet werden, um Dateinamen zu kürzen, wenn sie in das Archiv gestellt werden.
  • ich: Neue Dateien einfügen Vor ein bestehendes Mitglied des Archivs. Wenn Sie den Modifikator verwenden ich, muss der Name eines bestehenden Archivmitglieds als relpos Argument, vor dem Archiv Spezifikation (gleich wie B).
  • l: Dieser Modifikator wird akzeptiert, aber nicht verwendet.
  • n: Verwendet die zählen Parameter. Dies wird verwendet, wenn im Archiv mehrere Einträge mit demselben Namen vorhanden sind. Instanz extrahieren oder löschen zählen des Vornamens aus dem Archiv.
  • Ö: Bewahren Sie die Original Daten der Mitglieder beim Extrahieren. Wenn Sie diesen Modifikator nicht angeben, werden aus dem Archiv extrahierte Dateien mit dem Zeitpunkt der Extraktion gestempelt.
  • P: Verwenden Sie den vollständigen Pfadnamen, wenn Sie Namen im Archiv abgleichen. GNU ar kann kein Archiv mit einem vollständigen Pfadnamen erstellen, andere Archiversteller können dies jedoch. Diese Option führt dazu, dass GNU ar um Dateinamen mit einem vollständigen Pfadnamen abzugleichen, was beim Extrahieren einer einzelnen Datei aus einem Archiv, das von einem anderen Tool erstellt wurde, praktisch sein kann.
  • S: Schreiben Sie einen Objektdateiindex in das Archiv oder aktualisieren Sie einen bestehenden, auch wenn keine anderen Änderungen am Archiv vorgenommen werden. Sie können dieses Modifikator-Flag entweder mit jeder Operation oder allein verwenden. Laufen ähm auf einem Archiv entspricht dem Ausführen ranlib darauf.
  • S: Keine Archivsymboltabelle generieren. Diese Einstellung kann den Aufbau einer großen Bibliothek in mehreren Schritten beschleunigen. Das resultierende Archiv kann nicht mit dem Linker verwendet werden. Um eine Symboltabelle zu erstellen, müssen Sie die S Modifikator bei der letzten Ausführung von ar, oder du musst laufen ranlib auf dem Archiv.
  • du: Normalerweise, ar r... fügt alle aufgelisteten Dateien in das Archiv ein. Wenn Sie einfügen möchten nur diejenigen der Dateien, die Sie auflisten, die neuer sind als vorhandene Mitglieder mit demselben Namen, verwenden Sie diesen Modifikator. Die du Modifikator ist nur für die Operation erlaubt R (ersetzen). Insbesondere die Kombination qu ist nicht erlaubt, da die Überprüfung der Zeitstempel jeglichen Geschwindigkeitsvorteil durch die Operation verlieren würde Q.
  • v: Dieser Modifikator fordert die ausführlich Variante einer Operation. Anzeige vieler Operationen Weitere Informationen, wie zum Beispiel verarbeitete Dateinamen, wenn der Modifikator v wird angehängt.
  • V: Dieser Modifikator zeigt die Versionsnummer von ar.

Verwenden Sie die Mann Befehl (% Mann), um zu sehen, wie ein Befehl auf Ihrem Computer verwendet wird.

Andere Formen der Archivierung

Linux unterstützt viele verschiedene Methoden zum Archivieren von Dateien. ZIP-Dateien sind beispielsweise plattformübergreifend. Obwohl ar für schnelle lokale Archive hilfreich ist, ziehen Sie alternative Formate in Betracht, wenn Sie das Archiv mit jemandem teilen möchten, der Windows verwendet.

So komprimieren Sie Dateien mit der Linux-Befehlszeile