Ich versuche, ein sehr großes Verzeichnis zu entpacken. So funktioniert das Entpacken des gesamten Verzeichnisses:
$ sudo tar -xjf itunes20140618.tbz --verbose
x itunes20140618/
x itunes20140618/genre_artist
x itunes20140618/imix_type
...etc...
Wenn ich jedoch versuche, nur eine einzelne Datei zu entpacken, wird dies zwar korrekt durchgeführt, aber der Befehl bleibt dann auf unbestimmte Zeit hängen. Außerdem wird bei Verwendung der Anweisung --verbose keine Ausgabe gedruckt. Hier ist ein Beispiel:
$ sudo tar -xjf itunes20140618.tbz itunes20140618/imix --verbose
[ nothing prints...it just hangs. But it does un-tar that single file ]
Antwort1
Geben Sie nach Argumenten, die keine Optionen sind, keine Optionen an. Dies gilt insbesondere, wenn tar
es sich um einen nicht standardmäßigen Befehl mit mehreren Implementierungen handelt, die mehrere alte und neuere Möglichkeiten zum Analysieren von Optionen, Aktionen und Argumenten für diese unterstützen.
In:
tar -xjf itunes20140618.tbz itunes20140618/imix --verbose
itunes20140618.tbz
wäre ein Argument für die -f
Option, itunes20140618/imix
ein zusätzliches Nicht-Optionsargument, das als Name eines aus dem Archiv zu extrahierenden Mitglieds verwendet wird. Ob es --verbose
als zusätzliches Argument (der Name eines anderen zu extrahierenden Mitglieds) oder als Option behandelt wird, hängt von der Implementierung und Version tar
und möglicherweise sogar davon ab, wie es kompiliert wurde oder von der Laufzeitumgebung.
In Ihrem Fall kann es durchaus sein, dass Sie tar
zu denen (der Mehrheit) gehören, die das nicht --verbose
als generelle Option betrachten.
Verwenden Sie hier:
tar -xjf itunes20140618.tbz --verbose itunes20140618/imix
Oder die portablere Variante:
bunzip2 < itunes20140618.tbz | tar xvf - itunes20140618/imix
Oder ersetzen Sie es tar
durch den Standard (der allerdings weniger portabel ist) pax
:
bunzip2 < itunes20140618.tbz | pax -vr itunes20140618/imix
Antwort2
Sie verwenden bzip2
, was keinDateiarchivierungsprogrammfungiert also tar
im Wesentlichen als file archiver
und bzip2
komprimiert sie.
Wenn Sie beispielsweise eine Sammlung von Dateien mit tar archivieren und die resultierende Archivdatei dann mit gzip komprimieren, entsteht eine Datei mit der Erweiterung .tar.gz.
Dieser Ansatz hat jedoch einen Nachteil, wie im Wiki-Artikel beschrieben:
Das Extrahieren oder Ändern einer Datei ist schwierig. Zum Extrahieren einer Datei muss ein ganzes Archiv dekomprimiert werden, was zeit- und platzaufwändig sein kann.
Daher schlage ich vor, nur .tar
oder .zip
oder zu verwenden .rar
, wenn Sie häufig eine einzelne Datei extrahieren.