O alcatrão GNU vive com característica, então naturalmente também tem algumas opções para isso.
http://www.gnu.org/software/tar/manual/html_node/transform.html
Se você apenas deseja remover alguns segmentos de caminho, então --strip-components=n
ou --strip=n
fará o seguinte:
tar xvzf tgz --strip=1
Mas também é possível regexcrever os arquivos a serem extraídos (os sinalizadores são --transform
or --xform
e aceitam ereg com o /x
modificador):
tar xvzf tgz --xform='s#^[^/]+#.#x'
# or 's#^.+/##x' for discarding all paths
Para listar um alcatrão, você precisa da --show-transformed
opção adicional :
tar tvzf tgz --show-transformed --strip=1 --xform='s/abc/xyz/x'
Acredito que as opções de reescrita também funcionem para embalagem, não apenas para extração. Mas pax
tem obviamente uma sintaxe melhor.