GNU tar живет от фуритурита, поэтому, естественно, также есть несколько вариантов для этого.
http://www.gnu.org/software/tar/manual/html_node/transform.html
Если вы просто хотите удалить несколько сегментов пути, то --strip-components=n
или --strip=n
часто будете делать:
tar xvzf tgz --strip=1
Но также возможно переписать и перезаписать файлы, которые будут извлечены (флаги есть --transform
или --xform
принимают ereg с /x
модификатором):
tar xvzf tgz --xform='s#^[^/]+#.#x'
# or 's#^.+/##x' for discarding all paths
Для перечисления tar вам нужна дополнительная --show-transformed
опция:
tar tvzf tgz --show-transformed --strip=1 --xform='s/abc/xyz/x'
Я считаю, что варианты перезаписи также работают для упаковки, а не только для извлечения. Но pax
имеет явно более приятный синтаксис.