Um ein bestimmtes Verzeichnis (und seinen Inhalt rekursiv) zu extrahieren, übergeben Sie es einfach als zusätzliches Argument in der Befehlszeile. Mit GNU tar können Sie ein führendes Verzeichnis mit der --strip-components
Option entfernen (und im Allgemeinen die Dateinamen mit transformieren --transform
). Auf Nicht-Linux-Systemen können Sie pax (in POSIX, aber einige Linux-Distributionen lassen es von ihrer Standardinstallation aus) und dessen -s
Option verwenden.
tar xf foo.tar --strip-components=1 wordpress/wp-includes #GNU tar
pax -r <foo.tar -pp -s '!^wordpress/!!' wordpress/wp-includes
Sie können die Einschlussliste mit den Umschreiberegeln zusammenführen, indem Sie eine Regel anhängen, um alles auf den leeren Namen umzuschreiben.
pax -r <foo.tar -pp -s '!^wordpress/\(wp-includes/\)!\1!' -s !.*!!
Gilles 'SO - hör auf böse zu sein'
quelle
wordpress
)? Ich brauche dies, wenn ich von GitHub erstellte Tarballs extrahiere, die die Git-Revision in der entfernten Komponente enthalten, die ich vorher nicht kenne.