Apakah ada cara untuk mengekstrak `tar` tanpa clobbering

11

Apakah ada cara untuk tarmengekstrak tanpa clobbering?

Saya menginstal 12,04 dan ingin mengembalikan data saya dari 10.10. Apapun 12,04 spesifik yang ingin saya pertahankan, yaitu saya tidak ingin tarversi 10.10 akan diekstraksi. Jika saya melakukan pengembalian file secara umum seperti .bashrc akan musnah. Apakah ada cara untuk menghindari ini?

Sunting: Saya ingin mencatat bahwa disk image ISO 12,04 yang dibooting memungkinkan pembaruan dari 10.10 (atau apa pun) dan menawarkan untuk menyimpan data lama. Saya mencoba ini tetapi mengeluh beberapa aplikasi mungkin dibiarkan rusak setelah upgrade. Saya memutuskan untuk reboot dan melakukan instalasi bersih.

H2ONaCl
sumber

Jawaban:

13

Saya mengalami kesulitan memahami apa yang Anda inginkan tetapi jika Anda membuat file tar dari seluruh sistem Anda, saya yakin Anda membuat file tar yang sangat besar yang tidak memiliki tujuan nyata kecuali Anda benar-benar mengembalikan file tar. Jika Anda ingin menyimpan dokumen Anda sendiri, Anda harus membuat cadangan dari dokumen-dokumen itu dan tidak ada yang lain.

Setelah mengatakan bahwa tar memiliki beberapa opsi bagus ...

--keep-old-files

Ini tidak akan menimpa file yang ada.

--keep-newer-files 

Ini akan menjaga semua file yang memiliki stempel waktu yang lebih baru apa adanya.

--no-overwrite-dir

Ini akan membiarkan metadata dari direktori yang ada apa adanya.

Manual untuk tar dapat ditemukan di sini .

Tapi saya akan menyarankan mengekstraksi file tar pada media lain dan secara manual mengembalikan file-file itu. Ini adalah metode teraman.

Rinzwind
sumber
3
Bahkan dengan --keep-file yang lebih baru dan --no-overwrite-dir, mengekstraksi cadangan sistem lengkap lama ke sistem baru akan membuat sistem Anda dalam keadaan kesalahan karena banyak file yang seharusnya tidak ada akan diekstraksi. Anda hanya perlu membuka arsip di gui dengan rol file dan mengekstrak file spesifik yang Anda inginkan ke direktori home Anda.
psusi
Saya setuju sesuai baris terakhir saya dalam jawaban saya :)
Rinzwind
2
@Rinzwind, Anda benar, arsip saya memiliki desain yang salah. Banyak pengecualian dan masih belum cukup pengecualian sehingga berantakan dan berbahaya untuk dipulihkan karena itu akan ditimpa Maverick ke Precise. Arsip saya berikutnya adalah inklusi ketat. Saran Anda tentang pemulihan manual sangat bagus.
H2ONaCl
8

Dari tar (1) :

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

Tampak jelas bagi saya. Jika file di tarball disimpan relatif ke homedir lama Anda:

tar xvkf backup.tar.gz -C ~
Lekensteyn
sumber
apakah ini juga berfungsi saat mengompresi.
nyxee
@nyxee Ini juga berfungsi ketika mencoba untuk mengekstrak arsip terkompresi (misalnya tar xvkzf backup.tar.gz -C ~). Saya tidak berpikir itu dikenali ketika Anda mencoba membuat archvie baru ( tar czf foo.tar.gz foo/) jika Anda bertanya tentang itu.
Lekensteyn