tar - ein Archivierungswerkzeug
ÜBERSICHT
tar
{A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo]
[ARG …]
tar -A [OPTIONEN] ARCHIV
ARCHIV
tar -c [-f ARCHIV] [OPTIONEN]
[DATEI …]
tar -d [-f ARCHIV] [OPTIONEN]
[DATEI …]
tar -t [-f ARCHIV] [OPTIONEN]
[ELEMENT …]
tar -r [-f ARCHIV] [OPTIONEN]
[DATEI …]
tar -u [-f ARCHIV] [OPTIONEN]
[DATEI …]
tar -x [-f ARCHIV] [OPTIONEN]
[ELEMENT …]
tar {--catenate|--concatenate}
[OPTIONEN] ARCHIV ARCHIV
tar --create [--file ARCHIV]
[OPTIONEN] [DATEI …]
tar {--diff|--compare} [--file
ARCHIV] [OPTIONEN] [DATEI ]
tar --delete [--file ARCHIV]
[OPTIONEN] [ELEMENT …]
tar --append [-f ARCHIV]
[OPTIONEN] [DATEI …]
tar --list [-f ARCHIV]
[OPTIONEN] [ELEMENT …]
tar --test-label [--file ARCHIV]
[OPTIONEN] [BEZEICHNUNG …]
tar --update [--file ARCHIV]
[OPTIONEN] [DATEI …]
tar --update [-f ARCHIV]
[OPTIONEN] [DATEI …]
tar {--extract|--get} [-f
ARCHIV] [OPTIONEN] [ELEMENT …]
Diese Handbuchseite ist eine Kurzbeschreibung von GNU tar.
Detailliertere Erläuterungen einschließlich Beispielen und
Empfehlungen für Befehlsaufrufe finden Sie im GNU Tar Manual
im Texinfo-Format. Wenn das Anzeigeprogramm info(1) und die
Dokumentation zu Tar auf Ihrem System korrekt installiert sind,
können Sie mit dem Befehl
info tar
auf das vollständige Handbuch zugreifen.
Sie können das Handbuch auch im Info-Modus in
emacs(1) betrachten. Weiterhin finden Sie verschiedene Formate online
auf
http://www.gnu.org/software/tar/manual
Falls Sie in dieser Handbuchseite und dem GNU Tar Manual
unterschiedliche Aussagen entdecken, sollte Letzteres als Referenzquelle
anerkannt werden.
GNU tar ist ein Archivprogramm, das mit dem Ziel entwickelt
wird, mehrere Dateien in einer einzigen Datei zu speichern (einem
Archiv) sowie diese Dateien zu bearbeiten. Das Archiv kann entweder
eine reguläre Datei oder ein Gerät sein (zum Beispiel ein
Bandlaufwerk, woraus der Name des Programms abgeleitet wurde, der für
tape archiver steht), das sich auf einem lokalen Rechner oder
auch einem Rechner im Netz befinden kann.
Die Optionen können an tar auf drei verschiedene
Arten übergeben werden. Im traditionellen Stil ist das erste
Argument eine Aneinanderreihung von Optionsbuchstaben und alle darauf
folgenden Argumente übergeben wiederum Argumente an die Optionen, wo
sie notwendig sind. Die Argumente werden in der gleichen Reihenfolge wie die
Optionsbuchstaben ausgewertet. Alle Wörter in der Befehlszeile, die
nach den Optionen verbleiben, werden als Nicht-Options-Argumente
verarbeitet: Namen von Dateien oder Archivelementen.
Beispielsweise erfordert die Option c die Erstellung eines
Archives, die Option v ausführliche Ausgaben, und die Option
f erwartet ein Argument, das den Namen des Archivs angibt, das
verarbeitet werden soll. Der folgende Befehl im traditionellen Stil weist
tar an, alle Dateien aus dem Verzeichnis /etc in die
Archivdatei etc.tar zu packen, wobei die archivierten Dateien
ausführlich aufgelistet werden:
tar cfv etc.tar /etc
Im UNIX oder Kurzoptions-Stil wird jedem
Optionsbuchstaben ein einzelnes Minuszeichen vorangestellt, so wie in
anderen Befehlszeilenwerkzeugen auch. Wenn eine Option ein Argument
akzeptiert, folgt es danach, entweder als separates Wort in der Befehlszeile
oder unmittelbar nach der Option. Wenn jedoch die Option ein
optionales Argument akzeptiert, muss das Argument ohne Leerzeichen
direkt auf den Optionsbuchstaben folgen, zum Beispiel wie in
-g/tmp/snar.db.
Eine beliebige Anzahl von Optionen, die keine Argumente
akzeptieren, können nach einem einzelnen Minuszeichen zusammengefasst
werden, zum Beispiel -vkp. Optionen, die Argumente akzeptieren (egal
ob obligatorisch oder optional), können am Ende angehängt
werden, zum Beispiel -vkpf a.tar.
Der obige Beispielbefehl könnte im Kurzoptions-Stil
folgendermaßen aussehen:
tar -cvf etc.tar /etc
oder
tar -c -v -f etc.tar /etc
Im GNU oder Langoptions-Stil beginnt jede Option mit
einem doppelten Minuszeichen und hat einen aussagekräftigen Namen,
der aus Kleinbuchstaben und Minuszeichen besteht. Die Langoption kann mit
ihren Anfangsbuchstaben abgekürzt werden, sofern dadurch kein
Zweideutigkeiten verursacht werden. Argumente zu Langoptionen werden
entweder als separates Wort in der Befehlszeile unmittelbar nach der Option
übergeben, oder durch ein Gleichheitszeichen von der Option getrennt,
ohne eingefügte Leerzeichen. Optionale Argumente müssen stets
auf die letztgenannte Weise übergeben werden.
Nachfolgend finden Sie verschiedene Möglichkeiten des
Beispielbefehls in diesem Stil:
tar --create --file etc.tar --verbose /etc
oder (durch Abkürzung einiger Optionen):
tar --cre --file=etc.tar --verb /etc
Die Optionen in allen drei Stilen können miteinander
gemischt werden. Dies wird mit alten Optionen jedoch nicht empfohlen.
Die in der nachfolgenden Tabelle aufgelisteten Optionen weisen
tar an, welche Aktion ausgeführt werden soll. Exakt eine davon
muss angegeben werden. Die Bedeutung der Nicht-Options-Argumente
hängt davon ab, welcher Aktionsmodus angefordert wird.
- -A, --catenate,
--concatenate
- hängt ein Archiv an das Ende eines anderen Archivs an. Die
Argumente werden als die Namen der anzuhängenden Archive
aufgefasst. Alle Archive müssen im gleichen Format des Archivs
vorliegen, an das sie angehängt werden sollen. Anderenfalls
wäre das Archiv mit Nicht-GNU-Implementationen von tar nicht
verwendbar. Beachten Sie auch, dass bei Angabe von mehr als einem Archiv
jene Elemente, die nicht aus dem ersten Archiv stammen, im sich ergebenden
Archiv nur dann verfügbar sein werden, wenn die Option -i
(--ignore-zeros) angegeben wird.
Komprimierte Archive können nicht verkettet werden.
- -c, --create
- erstellt ein neues Archiv. Argumente werden als Namen der zu
archivierenden Dateien aufgefasst. Verzeichnisse werden rekursiv
archiviert, außer wenn die Option --no-recursion angegeben
ist.
- -d, --diff,
--compare
- findet Unterschiede zwischen Archiv und Dateisystem. Die Argumente sind
optional und geben die zu vergleichenden Archivelemente an. Falls nichts
angegeben ist, wird das aktuelle Arbeitsverzeichnis angenommen.
- --delete
- löscht Elemente aus dem Archiv. Die übergebenen Argumente
sind Namen der zu löschenden Elemente. Es muss mindestens ein
Argument angegeben werden.
Diese Option funktioniert nicht mit gepackten Archiven.
Außerdem gibt es keine entsprechende kurze Option.
- -r, --append
- hängt Dateien am Ende eines Archivs an. Die Argumente sind
gleichbedeutend mit jenen für -c (--create).
- -t, --list
- listet den Inhalt eines Archivs auf. Argumente sind optional. Wenn
angegeben, bezeichnen diese die Namen der aufzulistenden Argumente.
- --test-label
- testet die Datenträgerbezeichnung des Archivs und beendet das
Programm. Wenn es ohne Argumente aufgerufen wird, wird die
Datenträgerbezeichnung aufgerufen (sofern vorhanden) und das
Programm mit dem Status 0 beendet. Wenn eines oder mehrere
Befehlszeilenargumente angegeben sind, vergleicht tar die
Datenträgerbezeichnung mit jedem Argument. Es wird mit dem
Exit-Code 0 beendet, falls eine Übereinstimmung gefunden
wird, anderenfalls mit 1. Es erfolgt nur dann eine Ausgabe, wenn
die Option -v (--verbose) übergeben wurde.
Für diese Option gibt es keine entsprechende kurze
Option.
- -u, --update
- hängt Dateien, die neuer als die entsprechende Kopie in dem Archiv
sind, an. Die Argumente haben die gleiche Bedeutung wie bei den Optionen
-c und -r. Beachten Sie, dass neuere Dateien nicht ihre
älteren Archivkopien ersetzen, sondern stattdessen an das Ende des
Archivs angehängt werden. Das entstandende Archiv kann daher
mehrere Mitglieder mit dem gleichen Namen enthalten, entsprechend mehrerer
Versionen der gleichen Datei.
- -x, --extract,
--get
- entpackt Dateien aus einem Archiv. Argumente sind optional. Wenn
angegeben, bezeichnen sie die Namen der Elemente, die aus dem Archiv
entpackt werden sollen.
- --show-defaults
- zeigt die eingebauten Voreinstellungen für verschiedene Optionen
von tar an und beendet das Programm. Es werden keine Argumente
akzeptiert.
- -?, --help
- zeigt eine kurze Zusammenfassung der Optionen an und beendet das Programm.
Es werden keine Argumente akzeptiert.
- --usage
- zeigt eine Liste der verfügbaren Optionen an und beendet das
Programm. Es werden keine Argumente akzeptiert.
- --version
- zeigt Versions- und Urheberrechtsinformationen an und beendet das
Programm.
- --check-device
- überprüft Gerätenummern, wenn inkrementelle Archive
erstellt werden (Voreinstellung).
- -g,
--listed-incremental=DATEI
- verarbeitet inkrementelle Sicherungen im neuen GNU-Format. DATEI
ist der Name einer Schnappschuss-Datei, wo tar
zusätzliche Informationen speichert. Diese werden zur Entscheidung
darüber herangezogen, welche Dateien sich seit der letzten
inkrementellen Sicherung geändert haben und daher nicht erneut
gespeichert werden müssen. Wenn diese DATEI bei der
Erstellung eines Archivs nicht existiert, wird sie angelegt und alle
Dateien zum sich ergebenden Archiv hinzugefügt werden (die
Speicherung der Stufe 0). Um inkrementelle Archive der von Null
verschiedenen Stufe N zu erzeugen, erstellen Sie eine Kopie der
Schnappschuss-Datei während der Stufe N-1 und verwenden Sie
diese als DATEI.
Beim Auflisten oder Entpacken wird der tatsächliche
Inhalt der DATEI nicht untersucht, es ist nur aus syntaktischen
Erfordernissen nötig. Daher wird häufig /dev/null
verwendet.
- --hole-detection=METHODE
- verwendet die angegebene METHODE zum Finden von Lücken in
Sparse-Dateien. Diese Option impliziert --sparse. Gültige
Werte für METHODE sind seek and raw. In der
Voreinstellung wird seek benutzt, anderenfalls wird auf raw
ausgewichen, wenn seek nicht anwendbar ist.
- -G,
--incremental
- verwendet das alte GNU-Format für inkrementelle
Sicherheitskopien.
- --ignore-failed-read
- beendet bei nicht lesbaren Dateien nicht mit einem Rückgabewert
ungleich Null.
- --level=ZAHL
- legt die Speicherstufe für erzeugte
»listed-incremental«-Archive fest. Gegenwärtig ist
nur --level=0 von Bedeutung: Es weist tar an, den
Schnappschuss vor der Ausgabe zu kürzen, wobei die Stufe 0
erzwungen wird.
- -n, --seek
- nimmt an, dass das Archiv durchsuchbar ist. Normalerweise ermittelt
tar automatisch, ob ein Archiv durchsucht werden kann oder nicht.
Diese Option ist für jene Fälle gedacht, in denen die
automatische Erkennung nicht funktioniert. Sie ist nur wirksam, wenn das
Archiv zum Lesen geöffnet ist (zum Beispiel mit den Optionen
--list oder --extract).
- --no-check-device
- überprüft Gerätenummern nicht, wenn inkrementelle
Archive erstellt werden.
- --no-seek
- nimmt an, dass das Archiv nicht durchsuchbar ist.
- --occurrence[=N]
- verarbeitet nur jedes N-te Vorkommen jeder Datei im Archiv. Diese
Option ist nur in Verbindung mit einem der Unterbefehle --delete,
--diff, --extract oder --list gültig, und wenn
eine Liste von Dateien entweder in der Befehlszeile oder mit der Option
-T angegeben ist. Die Vorgabe für N ist
1.
- --restrict
- schaltet die Verwendung von einigen potenziell schädlichen Optionen
aus.
- --sparse-version=MAJOR[.MINOR]
- legt die Version des zu verwendenden Sparse-Formats fest (impliziert
--sparse). Zulässige Werte für Argumente sind
0.0, 0.1 und 1.0. Detaillierte Erläuterungen
zu den Sparse-Formaten finden Sie im GNU Tar Manual, Anhang
D, »Sparse Formats«. Mit dem Anzeigeprogramm
info können Sie es mit dem folgenden Befehl aufrufen:
info tar 'Sparse Formats'.
- -S, --sparse
- verarbeitet Sparse-Dateien effizient. Einige Dateien im Dateisystem
können Abschnitte enthalten, in die tatsächlich nie
geschrieben wurde (oft sind es von Systemen wie DBM angelegte
Datenbankdateien). Wenn diese Option angegeben ist, versucht tar
vor dem Archivieren zu bestimmen, ob es sich um eine Sparse-Datei handelt.
Sollte das der Fall sein, wird versucht, die Größe des
Archivs zu verringern, indem leere Teile der Datei nicht mit archiviert
werden.
Diese Optionen regeln das Verhalten von tar beim Entpacken
einer Datei über eine vorhandene Kopie auf einem
Datenträger.
- -k,
--keep-old-files
- ersetzt existierende Dateien beim Entpacken nicht.
- --keep-newer-files
- ersetzt existierende Dateien nicht, die neuer als ihre Kopie im Archiv
sind.
- --keep-directory-symlink
- ersetzt existierende Symlinks auf Verzeichnisse beim Entpacken nicht.
- --no-overwrite-dir
- behält die Metadaten von existierenden Verzeichnissen.
- --one-top-level[=VERZ]
- entpackt alle Dateien in VERZ, oder wenn es ohne Argument angegeben
wird, in ein Unterverzeichnis, das nach dem Basisnamen des Archivs benannt
wird (ohne die Standard-Kompressionserweiterungen, die von
--auto-compress erkannt werden können).
- --overwrite
- überschreibt existierende Dateien beim Entpacken.
- --overwrite-dir
- überschreibt Metadaten von existierenden Verzeichnissen beim
Entpacken (Voreinstellung).
- --recursive-unlink
- löscht alle Dateien im Verzeichnis vor dem Entpacken rekursiv.
- --remove-files
- löscht Dateien vom Datenträger, nachdem sie zum Archiv
hinzugefügt wurden.
- --skip-old-files
- ersetzt existierende Dateien beim Entpacken nicht, sie werden ohne Meldung
übersprungen.
- -U,
--unlink-first
- löscht jede Datei, bevor sie beim Entpacken überschrieben
wird.
- -W, --verify
- überprüft das Archiv nach dem Schreiben.
- --ignore-command-error
- ignoriert die
Exit-Codes von Unterprozessen.
- --no-ignore-command-error
- behandelt Rückgabewerte ungleich Null von Kindprozessen als Fehler
(Voreinstellung).
- -O,
--to-stdout
- entpackt Dateien in die Standardausgabe.
- --to-command=BEFEHL
- leitet die entpackten Dateien an BEFEHL weiter. Das Argument ist
der Pfadname eines externen Programms, optional mit
Befehlszeilenargumenten. Das Programm wird aufgerufen und der Inhalt der
entpackten Datei in die Standardausgabe übergeben.
Zusätzliche Daten werden über die folgenden
Umgebungsvariablen übergeben:
- TAR_FILETYPE
- Der Dateityp ist ein einzelner Buchstabe folgender Bedeutung:
f Reguläre Datei
d Verzeichnis
l Symbolischer Link
h Hardlink
b Blockorientiertes Gerät
c Zeichenorientiertes Gerät
Gegenwärtig werden nur reguläre Dateien
unterstützt.
- TAR_MODE
- Der Dateimodus als Oktalzahl.
- TAR_FILENAME
- Der Name der Datei.
- TAR_REALNAME
- Der Name der Datei, so wie sie im Archiv gespeichert ist.
- TAR_UNAME
- Name des Besitzers der Datei.
- TAR_GNAME
- Name der Gruppe des Besitzers der Datei.
- TAR_ATIME
- Zeit des letzten Zugriffs. Es ist eine Dezimalzahl, die die Sekunden seit
Beginn der Unix-Zeitrechnung darstellt. Wenn das Archiv Zeitangaben mit
Nanosekunden-Präzision enthält, werden die Nanosekunden nach
einem Dezimaltrenner an den Zeitstempel angehängt.
- TAR_MTIME
- Zeitpunkt der letzten Änderung.
- TAR_CTIME
- Zeitpunkt der letzten Statusänderung.
- TAR_SIZE
- Größe der Datei.
- TAR_UID
- UID (Benutzerkennung) des Besitzers der Datei.
- TAR_GID
- GID (Gruppenkennung) des Besitzers der Datei.
Zusätzlich enthalten die folgenden Variablen Informationen
über den Aktionsmodus von tar und das zu verarbeitende
Archiv:
- TAR_VERSION
- Versionsnummer von GNU tar.
- TAR_ARCHIVE
- Der Name des Archivs, das von tar verarbeitet wird.
- TAR_BLOCKING_FACTOR
- Aktueller Block-Faktor, also die Anzahl der 512-Byte-Blöcke in
einem Datensatz.
- TAR_VOLUME
- Ordnungszahl des Datenträgers, der von tar verarbeitet wird
(wird gesetzt, wenn ein aus mehreren Datenträgern bestehendes
Archiv gelesen wird).
- TAR_FORMAT
- Format des verarbeiteten Archivs: gnu, oldgnu, posix,
ustar oder v7.
- TAR_SUBCOMMAND
- Eine Kurzoption (mit vorangestelltem Minuszeichen), welche die von
tar ausgeführte Aktion beschreibt.
- --atime-preserve[=METHODE]
- erhält Zugriffszeiten für ausgegebene Dateien, entweder
durch Wiederherstellen der Zeiten nach dem Lesen
(METHOD=replace; Vorgabe) oder durch Nicht-Setzen der Zeiten
(METHOD=system)
- --delay-directory-restore
- verzögert das Setzen der Änderungszeiten und Rechte der
entpackten Verzeichnisse bis zum Ende des Entpackvorgangs. Verwenden Sie
diese Option, wenn Sie aus einem Archiv entpacken, das eine
unübliche Anordnung der Elemente aufweist.
- --group=NAME[:GID]
- erzwingt NAME als Gruppenname für hinzugefügte
Dateien. Wenn GID nicht angegeben ist, kann NAME entweder
ein Benutzername oder eine numerische GID sein. In diesem Fall wird der
fehlende Teil (GID oder Name) aus der aktuellen Gruppen-Datenbank des
Rechners abgeleitet.
Wenn dies zusammen mit --group-map=DATEI
verwendet wird, wirkt es sich nur auf jene Dateien aus, deren Gruppe
nicht in DATEI aufgelistet ist.
- --group-map=DATEI
- liest die Übersetzung der Gruppenzuordnung aus DATEI.
Leerzeilen werden dabei ignoriert. Kommentare werden mit einem
#-Zeichen eingeleitet und erstrecken sich bis zum Ende der Zeile.
Jede nicht-leere Zeile in DATEI definiert die Übersetzung
für eine einzelne Gruppe. Sie muss aus zwei Feldern bestehen, die
durch eine beliebige Anzahl Leerzeichen getrennt sind:
ALTEGRUPPE NEUEGRUPPE[:NEUEGID]
ALTEGRUPPE ist entweder ein gültiger Gruppenname
oder eine GID, der ein + vorangestellt ist. Außer wenn
NEUEGID angegeben ist, muss NEUEGRUPPE auch entweder ein
gültiger Gruppenname oder ein +GID sein.
Anderenfalls müssen sowohl NEUEGRUPPE als auch
NEUEGID nicht in der Gruppendatenbank des Systems enthalten
sein.
Daraufhin wird jede Eingabedatei mit der Besitzergruppe
OLDGRP im Archiv mit der Besitzergruppe NEUEGRUPPE und der
GID NEUEGID gespeichert.
- --mode=ÄNDERUNGEN
- erzwingt die (symbolischen) ÄNDERUNGEN des Modus für
hinzugefügte Dateien.
- --mtime=DATUM-ODER-DATEI
- setzt die mtime für hinzugefügte Dateien.
DATUM-ODER-DATEI ist entweder Datum/Zeit in einem beinahe
willkürlichen Format oder der Name einer existierenden Datei. In
letzterem Fall wird die mtime dieser Datei verwendet.
- -m, --touch
- entpackt nicht die Dateiänderungszeit.
- --no-delay-directory-restore
- hebt die Auswirkung der Option --delay-directory-restore auf.
- --no-same-owner
- entpackt Dateien mit dem aufrufenden Benutzer als Besitzer (Voreinstellung
für normale Benutzer).
- --no-same-permissions
- wendet die umask des Benutzers an, wenn Dateirechte aus dem Archiv
entpackt werden (Voreinstellung für normale Benutzer).
- --numeric-owner
- verwendet immer Zahlen für Benutzer-/Gruppennamen.
- --owner=NAME[:UID]
- erzwingt NAME als Besitzer der hinzugefügten Dateien. Wenn
keine UID angegeben ist, kann NAME entweder ein Benutzername
oder eine numerische UID sein. In diesem Fall wird der fehlende Teil (UID
oder Name) aus der Benutzerdatenbank des aktuellen Rechners ermittelt.
Wenn dies zusammen mit --owner-map=DATEI
verwendet wird, wirkt es sich nur auf die Dateien aus, deren
Eigentümer nicht in DATEI aufgelistet ist.
- --owner-map=DATEI
- liest die Eigentümerabbildungstabelle aus DATEI. Leere
Zeilen werden ignoriert. Kommentare werden mit dem Zeichen #
eingeleitet und gehen bis zum Zeilenende. Jede nicht leere Zeile in
DATEI definiert eine Abbildung für eine einzelne UID. Sie
muss aus zwei Feldern bestehen, die mit einer beliebigen Anzahl von
Leerraumzeichen getrennt werden:
ALTERBENUTZER NEUERBENUTZER[:NEUE_UID]
ALTERBENUTZER ist entweder ein gültiger
Benutzername oder eine UID, der + vorangestellt ist. Außer
wenn NEUE_UID angegeben ist, muss NEUERBENUTZER auch ein
gültiger Benutzername oder eine +UID sein.
Anderenfalls müssen sowohl ALTERBENUTZER als auch
NEUERBENUTZER nicht in der Benutzerdatenbank des Systems
enthalten sein.
Im Ergebnis wird jede Eingabedatei, deren Eigentümer
ALTERBENUTZER ist, im Archiv mit dem Eigentümer
NEUERBENUTZER und der UID NEUE_UID gespeichert.
- -p,
--preserve-permissions, --same-permissions
- liest Informationen über Dateiberechtigungen aus (Voreinstellung
für den Administrator).
- --same-owner
- versucht, Dateien mit denselben Besitzern zu entpacken, wie sie im Archiv
existieren (Voreinstellung für den Administrator).
- -s, --preserve-order,
--same-order
- sortiert die zu entpackenden Namen, um auf das Archiv zu passen.
- --sort=REIHENFOLGE
- sortiert Verzeichniseinträge beim Erstellen eines Archivs anhand
der angegebenen REIHENFOLGE, die none, name oder
inode sein kann.
Die Voreinstellung ist --sort=none, wobei
Archivelemente in der gleichen Reihenfolge gespeichert werden, wie es
das Betriebssystem vorgibt.
Die Verwendung von --sort=name stellt sicher, dass die
Anordnung der Elemente im erstellten Archiv einheitlich und
reproduzierbar ist.
Die Angabe von --sort=inode vermindert beim Erstellen
des Archivs die Anzahl von Suchvorgängen auf dem
Datenträger und kann so die Archivierung merklich beschleunigen.
Diese Reihenfolge wird nur unterstützt, wenn das zugrunde
liegende System die erforderlichen Informationen bereitstellt.
- --acls
- aktiviert die POSIX-ACL-Unterstützung.
- --no-acls
- deaktiviert die POSIX-ACL-Unterstützung.
- --selinux
- aktiviert die Unterstützung für SELinux-Kontext.
- --no-selinux
- deaktiviert die Unterstützung für SELinux-Kontext.
- --xattrs
- aktiviert die Unterstützung für erweiterte Attribute.
- --no-xattrs
- deaktiviert die Unterstützung für erweiterte Attribute.
- --xattrs-exclude=MUSTER
- gibt das Ausschlussmuster für Xattr-Schlüssel an.
MUSTER ist ein regulärer POSIX-Ausdruck, zum Beispiel
schließt --xattrs-exclude='^user.' Attribute aus dem
Namensraum des Benutzers aus.
- --xattrs-include=MUSTER
- gibt das Einbeziehungsmuster für Xattr-Schlüssel an.
MUSTER ist ein regulärer POSIX-Ausdruck.
- -f,
--file=ARCHIV
- verwendet Archivdatei oder Geräte-ARCHIV. Falls diese Option
nicht angegeben ist, wird tar zuerst die Umgebungsvariable
»TAPE« prüfen. Falls diese gesetzt ist, wird ihr Wert
als Archivname genutzt. Andernfalls wird tar die einkompilierte
Vorgabe annehmen. Die Vorgabe kann entweder mit der Option
--show-defaults oder am Ende der Ausgabe von tar --help
eingesehen werden.
Ein Archivname, der einen Doppelpunkt enthält,
bezeichnet eine Datei oder ein Gerät auf einem Rechner in der
Ferne. Der Teil vor dem Doppelpunkt ist der Rechnername oder dessen
IP-Adresse, der Teil danach ist der Pfad zur Datei oder zum
Gerät, zum Beispiel:
--file=remotehost:/dev/sr0
Ein optionaler Benutzername kann dem Rechnernamen
vorangestellt werden, wobei ein @ dazwischengesetzt werden
muss.
In der Voreinstellung erfolgt der Zugriff auf den Rechner in
der Ferne über den Befehl rsh(1). Heutzutage ist es jedoch
üblich, stattdessen ssh(1) zu verwenden. Sie erreichen
dies mit der folgenden Befehlszeilenoption:
--rsh-command=/usr/bin/ssh
Auf der Maschine in der Ferne sollte der Befehl rmt(8)
installiert sein. Falls deren Pfadname nicht auf die Vorgabe von
tar passt, können sie den korrekten Pfadnamen mit der
Option --rmt-command übergeben.
- --force-local
- gibt an, dass die Archivdatei lokal ist, selbst wenn sie einen Doppelpunkt
enthält.
- -F,
--info-script=BEFEHL,
--new-volume-script=BEFEHL
- führt BEFEHL am Ende jedes Bandes aus (impliziert
-M). Der Befehl kann Argumente enthalten. Beim Start wird die
Umgebung von tar und die zusätzlichen folgenden Variablen
geerbt:
- TAR_VERSION
- Versionsnummer von GNU tar.
- TAR_ARCHIVE
- Der Name des Archivs, das von tar verarbeitet wird.
- TAR_BLOCKING_FACTOR
- Aktueller Block-Faktor, also die Anzahl der 512-Byte-Blöcke in
einem Datensatz.
- TAR_VOLUME
- Ordnungszahl des Datenträgers, der von tar verarbeitet wird
(wird gesetzt, wenn ein aus mehreren Datenträgern bestehendes
Archiv gelesen wird).
- TAR_FORMAT
- Format des verarbeiteten Archivs: gnu, oldgnu, posix,
ustar oder v7.
- TAR_SUBCOMMAND
- Eine Kurzoption (mit vorangestelltem Minuszeichen), welche die von
tar ausgeführte Aktion beschreibt.
- TAR_FD
- Ein Dateideskriptor, der zur Übergabe des neuen
Datenträgernamens an tar verwendet werden kann.
Falls das Info-Skript fehlschlägt, beendet sich tar.
Anderenfalls beginnt es das Schreiben des nächsten
Datenträgers.
- -L,
--tape-length=N
- Das Band muss nach dem Schreiben von Nx1024 Bytes gewechselt
werden. Falls auf N eine Größen-Endung folgt (siehe
den Unterabschnitt Größen-Endungen unten), gibt die
Endung den multiplikativen Faktor an, der statt 1024 verwendet werden
soll.
Diese Option impliziert -M.
- -M,
--multi-volume
- erstellt datenträgerüberspannende Archive, listet diese auf
oder liest sie aus.
- --rmt-command=BEFEHL
- verwendet BEFEHL anstelle von rmt beim Zugriff auf Archive
in der Ferne. Siehe die obige Beschreibung der Option -f.
- --rsh-command=BEFEHL
- verwendet BEFEHL anstelle von rsh beim Zugriff auf Archive
in der Ferne. Siehe die obige Beschreibung der Option -f.
- --volno-file=DATEI
- Wird diese Option zusammen mit --multi-volume verwendet, wird
tar in DATEI nachverfolgen, an welchem Datenträger
eines datenträgerüberspannenden Archivs es gerade
arbeitet.
- -b,
--blocking-factor=BLÖCKE
- setzt die Datensatzgröße auf BLÖCKEx512
Bytes.
- -B,
--read-full-records
- Beim Auflisten oder Auslesen werden unvollständige
Eingabedatensätze hinter der Markierung für das Dateiende
akzeptiert.
- -i,
--ignore-zeros
- ignoriert genullte Blöcke im Archiv. Normalerweise bedeuten zwei
aufeinanderfolgende 512-Blöcke, die mit Nullen gefüllt sind,
EOF (Ende der Datei) und Tar beendet das Lesen, nachdem es sie angetroffen
hat. Diese Option weist es an, weiter zu lesen und ist nützlich,
falls Archive mit der Option -A erstellt wurden.
- --record-size=ZAHL
- setzt die Datensatzgröße. ZAHL ist die Anzahl der
Bytes pro Datensatz. Sie muss ein Vielfaches von 512 sein. Sie kann
eine Größenendung angehängt bekommen, z.B.
--record-size=10K für 10 Kilobyte. Siehe den Unterabschnitt
Größenendungen für eine Liste der
gültigen Endungen.
- -a,
--auto-compress
- verwendet die Archiv-Endung, um das Kompressionsprogramm
herauszufinden.
- -I,
--use-compress-program=BEFEHL
- filtert Daten durch BEFEHL. Er muss die Option -d zur
Dekompression akzeptieren. Das Argument kann Befehlszeilenoptionen
enthalten.
- -j, --bzip2
- filtert das Archiv mit bzip2(1).
- -J, --xz
- filtert das Archiv mit xz(1).
- --lzip
- filtert das Archiv mit lzip(1).
- --lzma
- filtert das Archiv mit lzma(1).
- --lzop
- filtert das Archiv mit lzop(1).
- --no-auto-compress
- verwendet nicht die Archiv-Endung, um das Kompressionsprogramm
herauszufinden.
- -z, --gzip,
--gunzip, --ungzip
- filtert das Archiv mit gzip(1).
- -Z, --compress,
--uncompress
- filtert das Archiv mit compress(1).
- --zstd
- filtert das Archiv mit zstd(1).
- --add-file=DATEI
- fügt DATEI zum Archiv hinzu (sinnvoll, wenn der Name mit
einem Minuszeichen beginnt).
- --backup[=CONTROL]
- erstellt Sicherungskopien vor dem Löschen. Falls das Argument
CONTROL angegeben ist, steuert es die Sicherung. Zulässige
Werte sind:
- none,
off
- erstellt niemals Sicherungskopien.
- t,
numbered
- erstellt nummerierte Sicherheitskopien.
- nil,
existing
- nummeriert, wenn bereits nummerierte Sicherheitskopien existieren, sonst
einfach.
- never,
simple
- erstellt immer einfache Sicherheitskopien.
Falls CONTROL nicht angegeben wurde, wird der Wert der
Umgebungsvariable VERSION_CONTROL genommen. Falls sie nicht gesetzt
ist, wird existing angenommen.
- -C,
--directory=VERZ
- wechselt in VERZ, bevor irgendwelche Operationen ausgeführt
werden. Diese Option ist positionsgebunden, das heißt, sie
beeinflusst alle Optionen, die darauf folgen.
- --exclude=MUSTER
- schließt Dateien aus, die dem MUSTER entsprechen, das ein
Platzhalter-Muster im glob(3)-Stil ist.
- --exclude-backups
- schließt Sicherungs- und Sperrdateien aus.
- --exclude-caches
- schließt den Inhalt von Verzeichnissen aus, die eine Datei namens
CACHEDIR.TAG enthalten, mit Ausnahme der Markierungsdatei
selbst.
- --exclude-caches-all
- schließt den Inhalt von Verzeichnissen aus, die eine Datei namens
CACHEDIR.TAG enthalten, einschließlich der Markierungsdatei
selbst.
- --exclude-caches-under
- schließt alles unterhalb von Verzeichnissen aus, die eine Datei
namens CACHEDIR.TAG enthalten.
- --exclude-ignore=DATEI
- sieht vor der Ausgabe eines Verzeichnisses nach, ob sie DATEI
enthält. Ist dies der Fall, werden aus dieser Datei
ausschließende Muster gelesen. Die Muster betreffen nur das
Verzeichnis selbst.
- --exclude-ignore-recursive=DATEI
- ist gleichbedeutend mit --exclude-ignore, außer dass die
Muster aus DATEI im Verzeichnis selbst und auch allen
Unterverzeichnissen gesucht wird.
- --exclude-tag=DATEI
- schließt den Inhalt von Verzeichnissen aus, welche DATEI
enthalten, außer DATEI selbst.
- --exclude-tag-all=DATEI
- schließt Verzeichnisse aus, die die DATEI enthalten.
- --exclude-tag-under=DATEI
- schließt alles unterhalb des Verzeichnisses aus, das DATEI
enthält.
- --exclude-vcs
- schließt unter Versionsverwaltung stehende Verzeichnisse aus.
- --exclude-vcs-ignores
- schließt Dateien aus, die auf die Muster von den aus
Versionsverwaltungssystemen bekannten »ignore«-Dateien
passen. Die Dateien .cvsignore, .gitignore,
.bzrignore und .hgignore werden unterstützt.
- -h,
--dereference
- folgt symbolischen Links, archiviert die Dateien und gibt sie aus, auf die
sie zeigen.
- --hard-dereference
- folgt harten Links, archiviert die Dateien und gibt sie aus, auf die sie
sich beziehen.
- -K,
--starting-file=ELEMENT
- beginnt beim angegebenen Element im Archiv.
- --newer-mtime=ZEITSTEMPEL
- arbeitet mit Dateien, deren Daten nach dem Datum geändert
wurden. Falls Datum mit einem / oder . beginnt, wird
es als Dateiname genommen. Die Mtime dieser Datei wird als Datum
benutzt.
- --no-null
- deaktiviert den Effekt der vorherigen Option --null.
- --no-recursion
- verhindert das automatische Hinabsteigen in Verzeichnisstrukturen.
- --no-unquote
- entfernt keine Maskierungen von Eingabedateien oder Elementnamen.
- --no-verbatim-files-from
- betrachtet jede aus dieser Datei gelesene Zeile so, als sei sie auf der
Befehlszeile angegeben worden. Das heißt, führende oder
anhängende Leerzeichen werden entfernt, und falls die Zeichenkette
mit einem Bindestrich beginnt, wird sie als tar-Befehlszeilenoption
angesehen.
Dies ist das Standardverhalten. Die Option
--no-verbatim-files-from wird als Möglichkeit zur
Wiederherstellung nach der Option --verbatim-files-from
bereitgestellt.
Diese Option ist positionsgebunden: Sie betrifft alle
--files-from-Optionen, die danach vorkommen, bis entweder die
Option --verbatim-files-from oder das Zeilenende erreicht
werden.
Dies ist in der Option --no-null impliziert.
- --null
- weist nachfolgende -T-Optionen an, null-terminierte Namen
wortgetreu zu lesen (schaltet die Sonderbehandlung von Namen aus, die mit
einem Bindestrich beginnen).
Siehe auch --verbatim-files-from.
- -N,
--newer=ZEITSTEMPEL,
--after-date=ZEITSTEMPEL
- speichert nur Dateien, die neuer als DATUM sind. Falls DATUM
mit einem / oder . beginnt, wird es als Dateiname genommen.
Die Mtime dieser Datei wird als Datum benutzt.
- --one-file-system
- bleibt im lokalen Dateisystem, wenn ein Archiv erstellt wird.
- -P,
--absolute-names
- entfernt führende »/« von Dateinamen beim Erstellen
von Archiven nicht.
- --recursion
- steigt in Verzeichnisstrukturen hinab (Voreinstellung).
- --suffix=ZEICHENKETTE
- legt eine Sicherheitskopie vor dem Löschen an, wobei die
übliche Endung überschrieben wird (»~«, sofern
nicht von der Umgebungsvariablen SIMPLE_BACKUP_SUFFIX
überschrieben).
- -T,
--files-from=DATEI
- Ermittelt die auszulesenden oder zu erstellenden Namen aus DATEI.
Falls nicht anders angegeben, muss DATEI eine durch
ASCII LF getrennte Liste von Namen enthalten (d.h. ein Name pro
Zeile). Die gelesenen Namen werden genauso wie Befehlszeilenargumente
behandelt. Bei ihnen werden Maskierungszeichen entfernt und
Wörter getrennt und jede Zeichenkette, die mit einem -
beginnt, wird als Befehlszeilenoption für tar
behandelt.
Falls dieses Verhalten nicht gewünscht ist, kann es mit
der Option --verbatim-files-from ausgeschaltet werden.
Die Option --null weist tar an, dass die Namen
in DATEI durch das ASCII-NUL-Zeichen statt durch LF
getrennt sind. Dies ist hilfreich, falls die Liste mittels der Option
-print0 von find(1) erstellt wurde.
- --unquote
- entfernt Maskierungszeichen für Dateien oder Elemente
(Vorgabe).
- --verbatim-files-from
- behandelt jede Zeile, die aus einer Dateiliste erhalten wurde, als
Dateiname, selbst wenn sie mit einem Bindestrich beginnt. Dateilisten
werden mit der Option --files-from (-T) übergeben.
Das Vorgabeverhalten ist, Namen in der Liste so zu handhaben, als ob sie
in der Befehlszeile übergeben worden wären, das heißt
Namen, die mit einem Bindestrich beginnen, werden als Optionen von
tar behandelt. Die Option --verbatim-files-from deaktiviert
dieses Verhalten.
Diese Option betrifft alle Optionen --files-from, die
danach in der Befehlszeile auftreten. Sein Effekt wird mit der Option
--no-verbatim-files-from rückgängig gemacht.
Diese Option impliziert die Option --null.
Siehe auch --add-file.
- -X,
--exclude-from=DATEI
- schließt Dateien aus, die auf irgendein Muster in DATEI
passen.
- --checkpoint[=N]
- gibt Fortschrittsmeldungen bei jedem Nten Datensatz aus
(Voreinstellung 10).
- --checkpoint-action=AKTION
- führt AKTION bei jedem Kontrollpunkt aus.
- --clamp-mtime
- setzt nur dann die Zeit, wenn diese neuer als die mit --mtime angegebene
Zeit ist.
- --full-time
- gibt die Dateizeit in der vollen Auflösung aus.
- --index-file=DATEI
- lenkt die ausführliche Ausgabe in DATEI um.
- -l,
--check-links
- gibt eine Meldung aus, falls nicht alle Links ausgegeben wurden.
- --no-quote-chars=ZEICHENKETTE
- schaltet das Maskieren von Zeichen aus ZEICHENKETTE aus.
- --quote-chars=ZEICHENKETTE
- maskiert Zeichen aus ZEICHENKETTE zusätzlich.
- --quoting-style=STIL
- setzt den Maskierungsstil für Datei- und Elementnamen.
Gültige Werte für STIL sind literal,
shell, shell-always, c, c-maybe,
escape, locale und clocale.
- -R,
--block-number
- zeigt die Blocknummer innerhalb des Archivs mit jeder Meldung an.
- --show-omitted-dirs
- zeigt beim Auflisten oder Entpacken jedes Verzeichnis an, das nicht auf
die Suchkriterien passt.
- --show-transformed-names,
--show-stored-names
- zeigt Datei- oder Archivnamen nach der Umwandlung mit den Optionen
--strip und --transform an.
- --totals[=SIGNAL]
- Die Gesamtzahl an Bytes nach dem Verarbeiten des Archivs ausgeben, mit
einem Argument - die Gesamtzahl an Bytes wird ausgegeben, wenn dieses
SIGNAL geliefert wird. Erlaubte Signale sind: SIGHUP, SIGQUIT, SIGINT,
SIGUSR1 und SIGUSR2. Namen ohne das Präfix SIG werden ebenfalls
akzeptiert.
- --utc
- gibt Dateiänderungszeiten in UTC aus.
- -v, --verbose
- ausführlich die verarbeiteten Dateien aufführen. Jedes
Vorkommen dieser Option auf der Befehlszeile erhöht die
Ausführlichkeitsstufe um eins. Die maximale
Ausführlichkeitsstufe ist 3. Für eine detailliertere
Besprechung, wie die verschiedenen Ausführlichkeitsstufen die
Ausgabe von Tar beeinflussen, lesen Sie bitte das GNU Tar Manual,
Unterabschnitt 2.5.1 »The '--verbose' Option«.
- --warning=SCHLÜSSELWORT
- aktiviert oder deaktiviert durch SCHLÜSSELWORT
identifizierte Warnungsmeldungen. Die Meldungen werden unterdrückt,
falls no- vor das SCHLÜSSELWORT gesetzt wird,
ansonsten sind sie aktiviert.
Mehrere --warning-Meldungen werden zusammengefasst.
Schlüsselwörter, die die allgemeinen
Abläufe von tar steuern:
- all
- aktiviert sämtliche Warnmeldungen. Dies ist die
Voreinstellung.
- none
- deaktiviert sämtliche Warnmeldungen.
- filename-with-nuls
- "%s: gelesener Dateiname enthält das Zeichen Nul."
- alone-zero-block
- "Ein einsamer Nullblock bei %s"
Für tar --create anwendbare
Schlüsselwörter:
- cachedir
- "%s: Enthält eine Zwischenspeicherverzeichnismarkierung %s:
%s"
- file-shrank
- "%s: Datei schrumpfte um %s bytes, wird mit Nullen
aufgefüllt."
- xdev
- "%s: Datei ist auf einem anderen Dateisystem; nicht
ausgegeben."
- file-ignored
- "%s: Unbekannter Dateityp; Datei wird ignoriert"
"%s: Socket wird ignoriert"
"%s: Door ignoriert"
- file-unchanged
- "%s: Datei ist unverändert, nicht ausgegeben."
- ignore-archive
- "%s: Datei ist das Archiv, nicht ausgegeben."
- file-removed
- "%s: Die Datei wurde entfernt, bevor sie gelesen werden
konnte."
- file-changed
- "%s: Die Datei wurde während des Lesens
geändert."
- failed-read
- unterdrückt Warnungen über nicht lesbare Dateien oder
Verzeichnisse. Dieses Schlüsselwort gilt nur, falls es zusammen mit
der Option --ignore-failed-read verwandt wird.
Für tar --extract verfügbare
Schlüsselwörter:
- existing-file
- "%s: Existierende Datei wird übersprungen."
- timestamp
- "%s: Unplausibler alter Zeitstempel %s."
"%s: Zeitstempel %s ist %s s in der Zukunft."
- contiguous-cast
- "Entpacke fortlaufende Dateien als reguläre Dateien"
- symlink-cast
- "versucht, symbolische Links als harte Links zu entpacken."
- unknown-cast
- "%s: Unbekannter Dateityp »%c«, wird als normale Datei
entpackt."
- ignore-newer
- "Aktuelle %s ist neuer oder gleichalt."
- unknown-keyword
- "Unbekanntes erweitertes Kopfzeilenschlüsselwort
»%s« wird ignoriert."
- decompress-program
- steuert die ausführliche Beschreibung von Fehlern, die beim Versuch
auftreten, alternative Entpackprogramme zu verwenden. Diese Warnung ist
standardmäßig deaktiviert (außer --verbose
wird verwendet). Ein typisches Beispiel dafür, was Sie mit der
Verwendung dieser Warnungen erhalten könnten:
$ tar --warning=decompress-program -x -f archive.Z tar (Kind): Kann compress nicht ausführen: Datei oder Verzeichnis nicht gefunden tar (Kind): Versuche Gzip
Dies bedeutet, dass tar zuerst versuchte,
archive.Z mittels compress zu entpacken und als das
fehlschlug, auf gzip umstellte.
- record-size
- "Datensatzgröße = %lu Blöcke"
Schlüsselwörter, die die schrittweise Entpackung
steuern:
- rename-directory
- "%s: Verzeichnis wurde aus %s umbenannt"
"%s: Verzeichnis wurde umbenannt"
- new-directory
- "%s: Verzeichnis ist neu"
- xdev
- "%s: Verzeichnis liegt auf einem anderen Dateisystem: entferne
nicht."
- bad-dumpdir
- "Fehlgeformtes Verzeichnis für Dump: „X“ nie
benutzt"
- -w, --interactive,
--confirmation
- bittet vor jeder Aktion um eine Bestätigung.
- -o
- Beim Erstellen identisch zu --old-archive. Beim Auslesen identisch
zu --no-same-owner.
Endung Einheiten Byte-Äquivalent
b Blöcke GRÖSSE x 512
B Kilobyte GRÖSSE x 1024
c Byte GRÖSSE
G Gigabyte GRÖSSE x 1024^3
K Kilobyte GRÖSSE x 1024
k Kilobyte GRÖSSE x 1024
M Megabyte GRÖSSE x 1024^2
P Petabyte GRÖSSE x 1024^5
T Terabyte GRÖSSE x 1024^4
w Wörter GRÖSSE x 2
Der Exit-Code von Tar zeigt an, ob es die angefragte Aktion
erfolgreich durchführen konnte und falls nicht, welche Art von
Fehlern aufgetreten ist.
- 0
- Erfolgreich beendet.
- 1
- Einige Dateien unterscheiden sich. Falls tar mit der
Befehlszeilenoption --compare (--diff, -d) aufgerufen
wurde, bedeutet dies, dass einige Dateien in dem Archiv sich von ihren
Gegenstücken auf der Platte unterscheiden. Falls Tar eine der
Optionen --create, --append oder --update
übergeben wurde, bedeutet dieser Exit-Code, dass sich einige
Dateien währen der Archivierung geändert haben und daher das
Archiv nicht die genaue Kopie der Dateimenge enthält.
- 2
- Fataler Fehler. Dies bedeutet, dass ein fataler, nicht
korrigierbarer Fehler auftrat.
Falls ein Unterprozess, der von tar aufgerufen wurde, mit
einem von Null verschiedenen Exit-Code beendet wurde, beendet sich
tar auch mit diesem Code. Dies kann beispielsweise passieren, falls
eine Komprimierungsoption (z.B. -z) verwendet wurde und das externe
Komprimierungsprogramm fehlschlug. Ein weiteres Beispiel ist ein Fehlschlag
von rmt während der Datensicherung auf ein Gerät in der
Ferne.
bzip2(1), compress(1), gzip(1),
lzma(1), lzop(1), rmt(8), symlink(7),
xz(1), zstd(1).
Vollständiges Handbuch von tar: Führen Sie
info tar aus oder verwenden Sie den Info-Modus von emacs(1)
zum Lesen.
Online-Versionen der Dokumentation zu GNU tar in
verschiedenen Formaten finden Sie hier:
http://www.gnu.org/software/tar/manual
Melden Sie Fehler (auf Englisch) an <bug-tar@gnu.org>.
Copyright © 2013-2019 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL Version 3 oder neuer
<http://gnu.org/licenses/gpl.html>.
Dies ist freie Software: Sie können sie verändern und
weitergeben. Es gibt KEINE GARANTIE, soweit gesetzlich zulässig.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Dr.
Tobias Quathamer <toddy@debian.org>, Mario Blättermann
<mario.blaettermann@gmail.com> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer.