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
явно более приятный синтаксис.