descompactando o tarball com hard links em um sistema de arquivos que não suporta hard links

5

Eu tenho um tarball (digamos t.tar.gz ) que contém os seguintes arquivos

./a/a.txt
./b/b.txt 

em que ./b/b.txt é um link físico para ./a/a.txt .

Eu quero descompactar o tarball em um sistema de arquivos de rede (AFS) que suporta apenas hard links no mesmo diretório (veja aqui ). Portanto, apenas descompactá-lo via tar -xzf t.tar.gz gera um erro que o hard link ./b/b.txt não pode ser criado.

Até agora, minha solução para o problema foi descompactar ./t.tar.gz em um sistema de arquivos que suporta links físicos comuns. Em seguida, empacote novamente com a opção --hard-dereference como o manual do GNU alcatrão propõe . E por último, descompacte esse novo tarball no AFS.

Como isso é insatisfatório para mim, estou perguntando se existe uma maneira mais fácil de descompactar o conteúdo do arquivo para o destino final. Como uma opção equivalente a --hard-dereference para descompactar em vez de arquivar?

    
por Denis 22.02.2016 / 14:08

1 resposta

2

Monte o arquivo como um diretório, por exemplo, com o AVFS e use sua ferramenta de cópia de arquivos favorita.

mountavfs
cp -a --no-preserve=links ~/.avfs/path/to/t.tar.gz\# target-directory/

ou

mountavfs
rsync -a ~/.avfs/path/to/t.tar.gz\#/ target-directory/
    
por 23.02.2016 / 00:28