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 opção --strip-components
(e mais geralmente Transforme os nomes dos arquivos com --transform
). Em sistemas não-Linux, você pode usar pax (é em POSIX, mas algumas distribuições Linux omitem da sua instalação padrão) e sua opção -s
.
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 regravação, acrescentando uma regra para reescrever tudo ao 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/\)!!' -s !.*!!