Wie entpacke ich ein Archiv ohne den Stammordner, ohne die gesamte Hierarchie zu verlieren?

25

Wenn ich ein .tarArchiv habe und es extrahiere, gibt es mir einen einzelnen Ordner foomit weiteren Informationen:

foo/
  something.txt
  another.txt
  bar/
    something-else.txt

Gibt es eine Möglichkeit, den .tarBefehl so zu ändern, foodass der Stammordner übersprungen wird ( in diesem Fall) und der gesamte Inhalt dieses Ordners direkt in meine cwd extrahiert wird:

something.txt
another.txt
bar/
  something-else.txt
Callum
quelle

Antworten:

29

Einfach. Verwenden Sie --strip-components=1das Archiv einfach wie folgt:

tar -xf archive.tar --strip-components=1

Und wie in der offiziellen tarManpage erklärt:

--strip-components = NUMBER

NUMBER führende Komponenten werden beim Extrahieren aus den Dateinamen entfernt

Mit der Logik ist , dass , wenn ein Pfad besteht foo/something.txtdann die erste „Komponente“ dieses Weges wäre , foo/so --strip-components=1würde die effektiv fallen foo/aus dem Pfad foo/something.txt.

JakeGould
quelle