Incluir subdiretório do diretório excluído em um arquivo tar

1

Eu tenho a pasta raiz USA e as subpastas California e Texas . Texas é uma subpasta excluída, mas possui um arquivo específico que gostaria de incluir no backup de tar. Vamos chamar esse arquivo Austin .

Como faço isso?

    
por Issam2204 03.07.2015 / 16:14

4 respostas

0

Executar tar duas vezes? Primeiro, exclua o Texas e depois apenas extraia o arquivo?

    
por 03.07.2015 / 17:31
0

Eu não sei como fazê-lo convenientemente com o BSD ou o GNU tar. (Inconveniently: não exclua o diretório em si, mas exclua todos os arquivos no diretório, exceto o que você deseja incluir.)

Você pode fazer isso com relativa facilidade com pax , que é o substituto do POSIX para o cpio e o tar. O Pax deve estar disponível em todos os lugares, embora algumas distribuições do Linux não o incluam como parte da instalação padrão.

O Pax gerencia exclusões e renomeia por meio da mesma ferramenta: a opção -s . Se um arquivo for renomeado para a string vazia, ele será excluído. As opções -s são processadas em ordem e, depois que um arquivo é correspondido, as opções subseqüentes não são processadas para esse arquivo (a menos que o sufixo g seja usado). Assim, você pode excluir um arquivo renomeando-o para ele mesmo antes da regra de exclusão que o corresponderia.

pax -w >foo.tar -s '!^USA/Texas/Austin$!&!' -s'!^USA/Texas/.*!!' USA 
    
por 04.07.2015 / 02:08
0

Encontrou o mesmo requisito que este. Veio aqui para encontrar uma solução, mas não conseguiu uma. De qualquer forma, eu consegui alcançar isso rodando tar duas vezes, então postando aqui.

Primeiro, crie o arquivo tar excluindo a pasta Texas :

tar cvf foo.tar --exclude=Texas USA/

Em seguida, anexe o arquivo necessário apenas ao arquivo tar criado:

tar vfr foo.tar USA/Texas/Austin/

Desta vez, removemos a opção c (create tar) e usamos r (append).

    
por 18.11.2015 / 16:19
0

Assuntos de ordem. Não há necessidade de executar o tar duas vezes.

tar cvf dest.tar USA/Texas/Austin --exclude=USA/Texas USA

testado no GNU tar 1.29

    
por 17.01.2018 / 08:55

Tags