Есть ли способ "дегтя" извлекать без забивания

11

Есть ли способ tarизвлечь без забивания?

Я устанавливаю 12.04 и хочу восстановить свои данные с 10.10. Что-нибудь конкретное 12.04, которое я хотел бы сохранить, то есть я не хочу, чтобы tarверсия d 10.10 была извлечена. Если я сделаю общее восстановление, такие файлы, как .bashrc, будут засорены. Есть ли способ избежать этого?

Изменить: Я хотел бы отметить, что загруженный образ диска 12.04 ISO позволяет обновить с 10.10 (или что-то еще), и он предлагает сохранить старые данные. Я пробовал это, но он жаловался, что некоторые приложения могут быть повреждены после обновления. Я решил просто перезагрузиться и сделать чистую установку.

H2ONaCl
источник

Ответы:

13

Мне трудно понять, что вы хотите, но если вы создали tar-файл для всей вашей системы, я считаю, что вы создали очень большой tar-файл, который не имеет реальной цели, если вы полностью не восстановите tar-файл. Если вы хотите сохранить свои собственные документы, вы должны были сделать резервную копию этих документов и ничего больше.

Сказав, что tar имеет несколько отличных вариантов ...

--keep-old-files

Это не будет перезаписывать существующие файлы.

--keep-newer-files 

Это сохранит все файлы с новой отметкой времени как есть.

--no-overwrite-dir

Это оставит метаданные существующего каталога как есть.

Руководство по смоле можно найти здесь .

Но я бы посоветовал извлечь файл tar на другой носитель и вручную восстановить эти файлы. Это самый безопасный метод.

Rinzwind
источник
3
Даже с --keep-newer-files и --no-overwrite-dir, извлечение старой полной резервной копии системы на новую систему оставит вашу систему в дурацком состоянии, поскольку многие файлы, которых там не должно быть, будут извлечены. Вы должны просто открыть архив в графическом интерфейсе с помощью file-roller и извлечь нужные файлы в свой домашний каталог.
psusi
Я согласен согласно моей последней строке в моем ответе :)
Rinzwind
2
@ Rinzwind, вы правы, мой архив имеет неправильный дизайн. Множество исключений и все еще недостаточно исключений, так что это беспорядок и опасно восстанавливать, так как это будет перезапись Maverick на Precise. Мой следующий архив будет строго с включениями. Ваше предложение о ручном восстановлении является хорошим.
H2ONaCl
8

Из смолы (1) :

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

Кажется, ясно для меня. Если файлы в архиве хранятся относительно вашего старого homedir:

tar xvkf backup.tar.gz -C ~
Lekensteyn
источник
это также работает при сжатии.
nyxee
@nyxee Это также работает при попытке извлечь сжатый архив (например tar xvkzf backup.tar.gz -C ~). Я не думаю, что это признается, когда вы пытаетесь создать новый archvie ( tar czf foo.tar.gz foo/), если вы спрашиваете об этом.
Лекенштейн