Para extrair um diretório específico (e seu conteúdo, recursivamente), apenas passe-o como um argumento extra na linha de comando. Com o GNU tar , você pode remover um diretório principal com a --strip-components
opção (e mais geralmente transformar os nomes dos arquivos --transform
). Em sistemas não Linux, você pode usar o pax (está no POSIX, mas algumas distribuições do Linux o omitem da instalação padrão) e sua -s
opção.
tar xf foo.tar --strip-components=1 wordpress/wp-includes #GNU tar
pax -r <foo.tar -pp -s '!^wordpress/!!' wordpress/wp-includes
Você pode mesclar a lista de inclusão com as regras de reescrita anexando uma regra para reescrever tudo no nome vazio (o que significa "não extrair"; a regra só se aplica se as regras anteriores não corresponderem).
pax -r <foo.tar -pp -s '!^wordpress/\(wp-includes/\)!\1!' -s !.*!!