O tar -xvf remove arquivos existentes do diretório?

10

Eu tenho um arquivo TAR e quero usar tar -xvf .
Neste arquivo tar eu tenho uma árvore de diretórios contendo um par de arquivos. No meu sistema solaris 10 esta árvore de diretórios já existe e possui vários arquivos. Se eu descompactar o arquivo, toda a árvore de diretórios é sobrescrita ou somente os arquivos contidos no arquivo são sobrescritos?
Os arquivos que não tiverem um correspondente no arquivo morto serão excluídos?

    
por Felicia 18.08.2010 / 21:14

2 respostas

5

Arquivos duplicados que já existem podem ou não ser descompactados e sobrescritos, dependendo do sistema. No entanto, isso geralmente ocorre por padrão. Arquivos que estão no arquivo, mas não no seu sistema, serão simplesmente adicionados a diretórios novos ou existentes em seu sistema.

Dir /test

/1/a
c

Arquivo test.tar

/1/b
d

provavelmente será mesclado com:

/1/a
/1/b
c
d

A adição do sinal -k ao comando tar garantirá que nenhum dos arquivos em seu diretório de destino seja substituído:

tar -xvkf test.tar
    
por 18.08.2010 / 21:28
0

A maneira mais fácil é criar um novo diretório vazio, criar um cd para ele e extrair os arquivos lá. Você precisa ter cuidado, porém, de que os arquivos extraídos sejam relativos (começando com ./) e não absolutos (comece com /). Canalize o índice por menos para ver qual é o caso se você não souber (tar -tvf tar_filename | less)

Você pode descobrir se sua versão de tar substitui por padrão ou não, olhando para a página man. O tar não excluirá arquivos durante a extração, que é outra razão pela qual as pessoas geralmente iniciam a partir de um diretório novo e vazio antes de fazer a extração.

    
por 18.08.2010 / 21:30