Existe uma maneira de `tar 'extrair sem bater

11

Existe uma maneira de tarextrair sem bater?

Estou instalando o 12.04 e quero restaurar meus dados da 10.10. Qualquer coisa específica do 12.04 que eu gostaria de manter, ou seja, não quero que a tarversão 10.10 seja extraída. Se eu fizer uma restauração geral, arquivos como .bashrc serão derrotados. Há alguma maneira de evitar isto?

Edit: Eu observaria que uma imagem de disco ISO 12.04 inicializada permite uma atualização da 10.10 (ou o que for) e oferece a manutenção de dados antigos. Eu tentei isso, mas ele reclamou que alguns aplicativos podem ser deixados quebrados após a atualização. Decidi apenas reiniciar e fazer uma instalação limpa.

H2ONaCl
fonte

Respostas:

13

Tenho dificuldade em entender o que você deseja, mas se você criou um arquivo tar de todo o seu sistema, acredito que você criou um arquivo tar muito grande que não tem um objetivo real, a menos que você restaure completamente o arquivo tar. Se você queria salvar seus próprios documentos, deveria ter feito um backup desses documentos e nada mais.

Depois de dizer que o alcatrão tem várias opções bacanas ...

--keep-old-files

Isso não substituirá os arquivos existentes.

--keep-newer-files 

Isso manterá todos os arquivos que possuem um carimbo de data / hora mais recente.

--no-overwrite-dir

Isso deixará os metadados de um diretório existente como estão.

Um manual para o alcatrão pode ser encontrado aqui .

Mas eu aconselho a extrair o arquivo tar em outro meio e a restaurar manualmente esses arquivos. É o método mais seguro.

Rinzwind
fonte
3
Mesmo com --keep-newer-files e --no-overwrite-dir, a extração de um antigo backup completo do sistema para um novo sistema deixará o sistema em estado de embaraço, uma vez que muitos arquivos que não deveriam estar lá serão extraídos. Você deve apenas abrir o arquivo na GUI com o rolo de arquivo e extrair os arquivos específicos que deseja para o diretório inicial.
Psp #
Concordo como por minha última linha na minha resposta :)
Rinzwind
2
@Rinzwind, você está certo, meu arquivo tem um design defeituoso. Muitas exclusões e ainda não o suficiente, por isso é uma bagunça e perigosa restaurar, pois seria a substituição do Maverick no Precise. Meu próximo arquivo será estritamente inclusões. Sua sugestão sobre a restauração manual é boa.
H2ONaCl
8

Do alcatrão (1) :

 -k, --keep-old-files
       don't replace existing files when extracting

Parece claro para mim. Se os arquivos no tarball forem armazenados relativamente ao seu homedir antigo:

tar xvkf backup.tar.gz -C ~
Lekensteyn
fonte
Isso também funciona durante a compactação.
N
@nyxee Também funciona ao tentar extrair um arquivo compactado (por exemplo tar xvkzf backup.tar.gz -C ~). Eu não acho que seja reconhecido quando você tenta criar um novo archvie ( tar czf foo.tar.gz foo/) se estiver perguntando sobre isso.
Lekensteyn