Exportar pastas específicas de .tar

0

Eu tenho um test.tar na pasta / dir1 / dir2 / e eu quero extrair pastas do meu test.tar para o diretório / dir1 / dir2 /. A estrutura do meu test.tar ist

test.tar
|tdirX/
|tdirY/
|tdirZ/

e assim por diante.

agora eu quero extrair as pastas tdirX - tdir Y, ... para / dir1 / dir2 / sem extrair test.tar / tdirZ

FYI: Estou executando o SunOS 5.8

    
por ortinga 19.05.2018 / 10:50

2 respostas

0

O manual tar(1) no meu sistema Solaris 11.4-beta que

Filename substitution wildcards cannot be used for extracting files from the archive.

... e depois sugere usar

tar xvf test.tar $( tar tf test.tar | grep '^tdir[XY]' )

em vez disso. Isso listaria o conteúdo do arquivo e do grep para as linhas que correspondessem a dir[XY] no início da linha.

Na verdade, sugere

tar xvf test.tar 'tar tf test.tar | grep '^tdir[XY]''

mas é a mesma coisa, a menos que seu shell seja antigo demais para entender $(...) .

Isso parece um pouco como um hack (seria quebrar se algum dos diretórios contivesse um espaço, por exemplo), e eu, neste caso, provavelmente usaria apenas

tar xvf test.tar tdirX
tar xvf test.tar tdirY

Isso pressupõe que o diretório de trabalho atual é /dir1/dir2 e que o arquivo está localizado no mesmo diretório.

    
por 19.05.2018 / 11:05
0

Não tenho certeza se estou seguindo totalmente o que você está tentando fazer. No entanto, você pode achar útil criar um arquivo com o conteúdo do tarball. ou seja: tar tf test.tar > /tmp/listing_of_test-tar.txt . Você pode até mesmo canalizá-lo através do grep ou sed antes ou depois da criação do arquivo para atender às suas necessidades.

Você poderia criar um arquivo separado para usar o -I para incluir ou -X excluir opções de tar.

    
por 22.05.2018 / 00:13

Tags