(portable archive interchange)
Das Kommando pax schreibt Dateien in Archivdateien, liest sie oder erstellt Listen dieser Dateien und kopiert Dateiverzeichnishierarchien. Es werden mehrere Archivformate unterstützt; siehe Option -x
format.
Welche Aktion ausgeführt wird, hängt davon ab, welche der Optionen -r und -w angegeben wurde. Die vier möglichen Kombinationen von -r und -w ergeben die vier Betriebsmodi: List-, Lese-, Schreib- und Kopiermodus, entsprechend den vier unter Syntax aufgeführten Formaten.
list
Im Listmodus (list mode, d.h. weder -r noch -w sind angegeben) liest pax eine Archivdatei von der Standard-Eingabe und schreibt die Namen der gesicherten Dateien, deren Pfadnamen auf das angegebene Muster muster passen, auf die Standard-Ausgabe. Wenn es sich bei einer angegebenen Datei um ein Dateiverzeichnis handelt, wird die davon ausgehende Dateihierarchie ebenfalls ausgegeben.
read
Im Lesemodus (read mode, d.h. -r ist angegeben, -w jedoch nicht) liest pax eine Archivdatei von der Standard-Eingabe und extrahiert die Dateien, deren Pfadnamen auf das angegebene Muster muster passen. Wenn es sich bei einer extrahierten Datei um ein Dateiverzeichnis handelt, wird die davon ausgehende Dateihierarchie ebenfalls extrahiert. Die extrahierten Dateien werden relativ zu der aktuellen Dateihierarchie erstellt.
write
Im Schreibmodus (write mode, d.h. -w ist angegeben, -r jedoch nicht) schreibt pax den Inhalt der datei-Operanden in einem Archivformat auf die Standard-Ausgabe. Wenn kein Operand datei angegeben ist, wird eine Liste der zu kopierenden Dateien, jeweils eine Datei pro Zeile, von der Standard-Eingabe gelesen. Bei Angabe eines Dateiverzeichnisses werden alle Dateien in der davon ausgehenden Dateihierarchie kopiert.
copy
Im Kopiermodus (copy mode, d.h. sowohl -r als auch -w sind angegeben) kopiert pax die datei-Operanden in das Zieldateiverzeichnis dateiverzeichnis.
Wenn keine datei-Operanden angegeben sind, wird eine Liste der zu kopierenden Dateien, jeweils eine Datei pro Zeile, von der Standard-Eingabe gelesen. Bei Angabe eines Dateiverzeichnisses werden alle Dateien in der davon ausgehenden Dateihierarchie kopiert.
Der Kopiervorgang läuft so ab, als würden die kopierten Dateien in eine Archivdatei geschrieben und anschließend extrahiert werden, außer dass hierbei möglicherweise Hard Links zwischen den Originaldateien und den kopierten Dateien bestehen.
Wenn im Lese- oder Kopiermodus zum Extrahieren einer Datei Zwischendateiverzeichnisse erforderlich sind, werden diese von pax erstellt.
Wenn nicht mindestens eine Datei mit den angegebenen Operanden muster oder datei übereinstimmt, schreibt pax für jeden Operanden, für den keine Übereinstimmung existiert, eine Diagnosemeldung auf die Standard-Fehlerausgabe und beendet sich mit einem Endestatus ungleich null.
Die unterstützten Archivformate werden beim Lesen von Archiven automatisch erkannt. Das Standardausgabeformat für Archive beim Schreiben (keine Option -x angegeben) ist das erweiterte tar-Format.
Ein Archiv kann sich über mehrere Dateien erstrecken. Das Kommando pax stellt fest, welche Datei als nächste gelesen oder geschrieben werden soll.
Wenn das ausgewählte Archivformat die Angabe von Links zwischen Dateien unterstützt, meldet pax einen Fehler, wenn bei der Extrahierung kein Link zwischen diesen Dateien erstellt werden kann.
Syntax
Format 1: |
pax[ -cdnv][ -f archiv][ -s anweisung] ...[muster...] |
Format 2: |
pax -r[ -cdiknuv][ -f archiv][ -p zeichenkette] ... [ -s anweisung] ... [muster ...] |
Format 3: |
pax -w[ -dituvX][ -b blockgröße][ -a][ -f archiv] [ -s anweisung] ... [ -x format][datei ...] |
Format 4: |
pax -r -w[ -diklntuvX][ -p zeichenkette] ... [ -s anweisung] ... [datei ...] dateiverzeichnis |
Optionen
Liest eine Archivdatei von der Standard-Eingabe. .
Schreibt Dateien im angegebenen Archivformat auf die Standard-Ausgabe.
Hängt Dateien an das Ende des Archivs an.
Stellt die Daten in Blöcken in die Archivdatei. Dabei wird die Blockgrösse als positive dezimale Ganzzahl angegeben. Geräte und Archivformate können möglicherweise Beschränkungen für die Blockung festlegen. Bei der Eingabe wird die Blockung automatisch festgestellt. Die Standardblockung beim Erstellen von Archiven hängt vom Archivformat ab (siehe Option -x unten). Um ein portables Archiv zu erhalten, darf die Blockgröße nicht größer als 32 KByte sein.
Wählt alle Dateien aus, außer den von den Operanden muster oder datei angegebenen.
Bei Dateiverzeichnissen wird die von diesem Dateiverzeichnis ausgehende Dateihierarchie nicht mitkopiert bzw. eingelesen bzw. archiviert.
Gibt den Pfadnamen des Eingabearchivs (im Listen- und Lesemodus) oder des Ausgabearchivs (Schreibmodus) an. Dieses Archiv wird anstelle der Standard-Eingabe bzw. Standard-Ausgabe verwendet.
Dateien können interaktiv umbenannt werden. Für jede archivierte Datei, deren Name zu einem Operanden muster passt, oder für jede Datei, die mit einem Operanden datei übereinstimmt, wird eine Eingabeaufforderung nach
Verhindert das Überschreiben bestehender Dateien.
Erstellt Links zwischen Dateien. Im Kopiermodus werden zwischen den Quell- und Zieldateihierarchien, wenn möglich, Hard Links erstellt.
Wählt die erste archivierte Datei aus, die zu einem Operanden muster passt. Für jeden Operanden muster wird immer nur eine passende Datei ausgewählt (Dateihierarchien, die von Dateiverzeichnissen ausgehen, sind von dieser Einschränkung nicht betroffen).
Legt Dateimerkmale (Berechtigungen) fest. Das Argument zeichenkette beinhaltet die Dateimerkmale, die bei der Extrahierung beibehalten oder ignoriert werden sollen. Die Zeichenkette zeichenkette besteht aus den Spezifizierungszeichen a, e, m, o und p. In derselben Zeichenkette können mehrere Merkmale verknüpft werden, und die Option -p kann mehrfach angegeben werden.
In der obigen Liste bedeutet „beibehalten“, dass ein im Archiv gespeichertes Attribut abhängig von den Berechtigungen des aufrufenden Prozesses an die extrahierte Datei weitergegeben wird. Andernfalls wird das Attribut wie bei Neuerstellung einer Datei festgelegt. Wenn weder das Spezifizierungszeichen e noch o angegeben ist oder die Benutzer- und Gruppen-ID nicht beibehalten werden, setzt pax die s-Bit für den Dateimodus nicht. Wenn eines dieser Attribute aus irgendeinem Grund nicht beibehalten werden kann, schreibt pax eine Diagnosemeldung auf die Standard-Fehlerausgabe. Wenn ein Attribut nicht beibehalten werden kann, hat dies zwar Auswirkungen auf den Endestatus, die extrahierte Datei wird jedoch nicht gelöscht. Wenn Spezifizierungszeichen in einem der Argumente zeichenkette doppelt vorkommen oder mit anderen Argumenten in Konflikt geraten, erhalten die zuletzt eingegebenen Argumente Vorrang. Wenn beispielsweise -p
Ändert Dateinamen, die von den Operanden muster oder datei angegeben wurden, entsprechend der Anweisung anweisung. Hierbei wird die Syntax des Kommandos ed verwendet. Die Begriffe „Adresse“ und „Zeile“ haben im Kontext des Kommandos pax keine Bedeutung. Es wird folgendes Format verwendet:
Wie auch bei ed, ist old ein einfacher regulärer Ausdruck, und new kann &-Zeichen, \n (wobei \n eine Ziffer ist), Rückverweise und Unterausdrücke enthalten. Die Zeichenkette old kann auch Neue-Zeile-Zeichen enthalten. Als Begrenzungszeichen können alle Zeichen verwendet werden (hier z.B. /). Mehrere Ausdrücke -s sind erlaubt. Die Ausdrücke werden in der angegebenen Reihenfolge ausgewertet bis zur ersten erfolgreichen Ersetzung. Das optionale nachgestellte g wirkt wie bei ed beschrieben. Das optionale nachgestellte p bewirkt, dass erfolgreiche Ersetzungen auf die Standard-Fehlerausgabe geschrieben werden. Dateinamen, die durch eine leere Zeichenkette ersetzt werden, werden beim Lesen und Schreiben von Archiven ignoriert.
Datum und Uhrzeit des letzten Zugriffs auf archivierte Dateien werden auf den Wert gesetzt, den sie vor dem Zugriff durch pax hatten.
Ignoriert Dateien, die älter sind (älteres Datum/Uhrzeit der letzten Änderung aufweisen) als eine bereits existierende gleichnamige Datei. Im Lesemodus wird eine archivierte Datei, die denselben Namen wie eine Datei im Dateisystem hat, extrahiert, wenn die archivierte Datei aktueller ist als die im Dateisystem. Im Schreibmodus wird eine Datei nur dann gesichert, wenn es im Archiv keine gleichnamige Datei jüngeren Datums gibt. Im Kopiermodus wird die Datei in der Zielhierarchie durch die Datei in der Quellhierarchie oder durch einen Link auf die Datei in der Quellhierarchie ersetzt, wenn die Datei in der Quellhierarchie aktueller ist.
Im Listenmodus wird ein ausführliches Inhaltsverzeichnis auf die Standard-Ausgabe geschrieben. Sonst werden die Pfadnamen der gesicherten Dateien auf die Standard-Fehlerausgabe geschrieben.
Gibt das Archivausgabeformat an. Das Kommando pax erkennt die folgenden Formate:
Erweitertes cpio-Austauschformat. Die Standardblockgröße für dieses Format für zeichenorientierte Archivdateien ist 512. Implementierungen von pax unterstützen alle Werte für die Blockgröße bis einschließlich 32256, die ein Vielfaches von 512 sind.
Erweitertes tar-Austauschformat. Die Standardblockgröße für dieses Format für zeichenorientierte Archivdateien ist 1024. Implementierungen von pax unterstützen alle Werte für die Blockgröße bis einschließlich 32256, die ein Vielfaches von 512 sind. Bei jedem Versuch, Daten an eine Archivdatei in einem anderen Format als im vorhandenen Archivformat anzuhängen, beendet sich pax sofort mit einem Endestatus ungleich null.
Beim Durchlauf durch eine Dateihierarchie, die durch einen Pfadnamen angegeben ist, wechselt pax nicht in Dateiverzeichnisse, die in einem anderen Dateisystem liegen. Die Optionen, die mit den Namen von Dateien arbeiten (-c, -i, -n, -s, -u und -v) werden wie im Folgenden beschrieben nacheinander ausgewertet. Im Lesemodus werden die Dateien aufgrund der vom Benutzer angegebenen Operanden muster und entsprechend den Änderungen durch die Optionen -c, -n und -u ausgewählt. Anschließend ändern die Optionen -s und -i in dieser Reihenfolge die Namen der ausgewählten Dateien. Die Option -v gibt die Namen aus, die sich aufgrund dieser Änderungen ergeben. Im Schreibmodus werden die Dateien aufgrund der vom Benutzer angegebenen Pfadnamen und entsprechend den Änderungen durch die Optionen -n und -u ausgewählt. Anschließend ändern die Optionen -s und -i in dieser Reihenfolge die Namen der ausgewählten Dateien. Die Option -v gibt die Namen aus, die sich aufgrund dieser Änderungen ergeben. Wenn sowohl die Option -u als auch die Option -n angegeben werden, berücksichtigt pax eine Datei nur, wenn sie aktueller als die Datei ist, mit der sie verglichen wird.
Pfadname des Zieldateiverzeichnisses für den Kopiermodus.
Pfadname einer zu kopierenden oder archivierenden Datei.
Muster, das auf einen oder mehrere Pfadnamen von archivierten Dateien passt. Standardmäßig (wenn kein muster angegeben ist) werden alle Dateien im Archiv ausgewählt. |
Standard-Eingabe (stdin)
Im Schreibmodus wird die Standard-Eingabe nur verwendet, wenn keine datei-Operanden angegeben sind. Die Standard-Eingabe muss dann eine Textdatei sein, die eine Liste der Pfadnamen enthält. Die Datei muss einen Pfadnamen pro Zeile beinhalten und es dürfen keine führenden oder nachgestellten Leerzeichen vorkommen. Im Listen- und Lesemodus muss die Standard-Eingabe eine Archivdatei sein. Andernfalls wird die Standard-Eingabe nicht verwendet. Die vom Argument archiv angegebene Eingabedatei bzw. die Standard-Eingabe, wenn das Archiv von ihr gelesen wird, ist eine Datei, die entsprechend einem der bei der Option -x aufgeführten Archivformate formatiert ist. Auf bzw. von stdin/stdout werden Eingabeaufforderungen geschrieben und Antworten gelesen. |
Standard-Ausgabe (stdout)
Wenn -f im Schreibmodus nicht angegeben ist, ist die Standard-Ausgabe das Archiv, das entsprechend einem der bei der Option -x aufgeführten Archivformate formatiert ist. Im Listenmodus wird das Inhaltsverzeichnis der ausgewählten Dateien im folgenden Formatauf die Standard-Ausgabe geschrieben:
Ist im Listenmodus die Option -v angegeben, wird das Inhaltsverzeichnis der ausgewählten Dateien in folgenden Formaten auf die Standard-Ausgabe geschrieben. Pfadnamen, die Hard Links zu vorherigen Dateien darstellen, werden im folgenden Format geschrieben:
Alle anderen Pfadnamen werden im folgenden Format geschrieben:
Hierbei ist ls_-l_listing das Format, das vom Kommando ls mit der Option -l erzeugt wird. |
Standard-Fehlerausgabe (stderr)
Wenn -v im Lese-, Schreib- oder Kopiermodus angegeben ist, schreibt pax die Pfadnamen, die es verarbeitet, im folgenden Format auf die Standard-Fehlerausgabe:
Diese Pfadnamen werden bei Beginn der Verarbeitung der Datei ausgegeben. Das abschließende Neue-Zeile-Zeichen wird ausgegeben, nachdem die Datei gelesen oder geschrieben wurde. Wenn die Option -s angegeben ist und sich ein nachgestelltes p in der Ersatzzeichenkette befindet, werden Ersetzungen im folgenden Format auf die Standard-Fehlerausgabe geschrieben:
Eventuelle Meldungen über das Format des Archivs werden ebenfalls auf die Standard-Fehlerausgabe geschrieben.
|
Ausgabedateien
Im Lesemodus haben die extrahierten oder kopierten Dateien den Typ der archivierten Datei. Im Schreibmodus ist die mit dem Argument -f benannte Ausgabedatei entsprechend einem der bei der Option -x aufgeführten Archivformate formatiert. |
Auswirkung von Fehlern
Wenn pax beim Lesen eines Archivs eine Datei oder einen Link nicht erstellen kann, beim Schreiben eines Archivs eine Datei nicht finden kann oder bei gesetzter -p-Option die Benutzer-ID, Gruppen-ID bzw. die Zugriffsrechte nicht beibehalten kann, wird eine Diagnosemeldung auf die Standard-Fehlerausgabe geschrieben und ein Endestatus ungleich null zurückgegeben. Die Verarbeitung wird jedoch fortgesetzt. Wenn pax keinen Link auf eine Datei erstellen kann, erstellt es standardmäßig keine zweite Kopie der Datei. Wenn die Extrahierung einer Datei aus einem Archiv vorzeitig durch ein Signal oder einen Fehler beendet wird, hat pax möglicherweise nur einen Teil der Datei extrahiert, oder (wenn die Option -n nicht angegeben wurde) hat es möglicherweise eine Datei unter dem vom Benutzer angegebenen Namen extrahiert, die jedoch nicht die vom Benutzer gewünschte Datei ist. Darüber hinaus können Zugriffsrechte von extrahierten Dateiverzeichnissen möglicherweise zusätzliche Bit aus der Schutzbit-Maske sowie nicht korrekte Datums- und Uhrzeitangaben der letzten Änderung und des letzten Zugriffs haben. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos pax: 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_COLLATE Legt die internationale Umgebung für das Verhalten von Bereichen, Äquivalenzklassen und Sortierelementen fest, die in Ausdrücken für den Musterabgleich für den Operanden muster, im einfachen regulären Ausdruck für die Option -s und im erweiterten regulären Ausdruck, der für das Schlüsselwort yesexpr in der Kategorie LC_MESSAGES definiert wurde, verwendet werden. LC_CTYPE Legt die internationale Umgebung für die Interpretation von Byte-Folgen als Zeichen fest (zum Beispiel Einzelbytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien), für das Verhalten von Zeichenklassen, die im erweiterten regulären Ausdruck verwendet werden, der für das Schlüsselwort yesexpr in der Kategorie LC_MESSAGES definiert wurde, sowie für den Musterabgleich. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. LC_TIME Legt das Format und den Inhalt von Datums- und Uhrzeitangaben fest, wenn die Option -v angegeben ist. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Hinweis
Dieser Hinweis gilt nur für die Anwender, die im Unix-System Archive mit den Unix-Kommandos tar und cpio erzeugt haben. Die Option -p wurde eingeführt, um die Unterschiede zwischen den herkömmlichen Implementierungen tar und cpio anzugleichen. Diese beiden Kommandos verwenden insbesondere -m auf unterschiedliche Art und Weise. Die Option -p bietet darüber hinaus erweiterte Möglichkeiten für die einheitliche Adressierung künftiger Dateiattribute, beispielsweise für erweiterte Sicherungssysteme oder Hochleistungsarchive. Von den möglichen Kombinationen werden meistens nur zwei Modi verwendet:
„Alles beibehalten“ wird vom herkömmlichen Superuser verwendet, der über alle entsprechenden Berechtigungen verfügt, um alle Dateiattribute so beizubehalten, wie sie im Archiv aufgezeichnet wurden. Das Flag e ist die Summe aus o und p.
„Beibehalten“ der Zugriffsrechte. Wird vom Benutzer mit regulären Berechtigungen verwendet, der die Dateiattribute außer dem Eigentümer beibehalten möchte. Datum- und Uhrzeitangaben der Datei werden standardmäßig beibehalten. Mit zwei anderen Flags können diese jedoch deaktiviert und Datum- und Uhrzeit der Extrahierung verwendet werden. Für Teile der beschriebenen Funktionalität sind entspechende Berechtigungen für den Aufrufer von pax erforderlich, insbesondere beim Erstellen von block- oder zeichenorientierten Gerätedateien, beim Wiederherstellen von Datum und Uhrzeit des Dateizugriffs (Option -t), sofern der Benutzer nicht Eigentümer der Dateien ist, oder für das Beibehalten des Dateieigentümers, der Gruppe und des Modus (Option -p). |
Beispiel
Das folgende Kommando legt ein Archiv mit dem Namen archiv an, das die Dateien datei1 bis datein sowie das Dateiverzeichnis dir1 mit allen seinen Unterverzeichnissen enthält:
Die folgenden Kommandos kopieren die Dateiverzeichnishierarchie olddir in newdir:
Das folgende Kommando liest das Archiv a.pax, wobei alle von
|