Có cách nào để giải nén tar tar mà không bị ghi đè


11

Có cách nào để targiải nén mà không bị tắc nghẽn?

Tôi đang cài đặt 12.04 và muốn khôi phục dữ liệu của mình từ 10.10. Bất cứ điều gì cụ thể 12.04 tôi muốn giữ lại, đó là tôi không muốn tarphiên bản 10.10 được trích xuất. Nếu tôi thực hiện khôi phục chung các tệp như .bashrc sẽ bị ghi đè. Có cách nào để tránh điều này không?

Chỉnh sửa: Tôi sẽ lưu ý rằng hình ảnh đĩa ISO 12.04 đã khởi động cho phép nâng cấp từ 10.10 (hoặc bất cứ điều gì) và nó cung cấp để giữ dữ liệu cũ. Tôi đã thử điều này nhưng nó phàn nàn rằng một số ứng dụng có thể bị hỏng sau khi nâng cấp. Tôi quyết định chỉ khởi động lại và thực hiện cài đặt sạch.

Câu trả lời:


13

Tôi gặp khó khăn trong việc hiểu những gì bạn muốn nhưng nếu bạn tạo một tệp tar của toàn bộ hệ thống, tôi tin rằng bạn đã tạo một tệp tar rất lớn không có mục đích thực sự trừ khi bạn khôi phục hoàn toàn tệp tar. Nếu bạn muốn lưu tài liệu của riêng mình, bạn nên tạo một bản sao lưu các tài liệu đó và không có gì khác.

Sau khi nói rằng tar có một số tùy chọn tiện lợi ...

--keep-old-files

Điều này sẽ không ghi đè lên các tập tin hiện có.

--keep-newer-files 

Điều này sẽ giữ tất cả các tệp có dấu thời gian mới hơn.

--no-overwrite-dir

Điều này sẽ để lại siêu dữ liệu của một thư mục hiện có.

Một hướng dẫn cho tar có thể được tìm thấy ở đây .

Nhưng tôi sẽ tư vấn giải nén tệp tar trên phương tiện khác và khôi phục thủ công các tệp đó. Đó là phương pháp an toàn nhất.


3
Ngay cả với các tệp --keep-mới-tập tin và --no-ghi đè-dir, trích xuất bản sao lưu toàn bộ hệ thống cũ vào một hệ thống mới sẽ khiến hệ thống của bạn ở trạng thái bị hỏng do nhiều tệp không nên được trích xuất. Bạn chỉ nên mở kho lưu trữ trong gui bằng con lăn tệp và trích xuất các tệp cụ thể bạn muốn vào thư mục chính của bạn.
psusi

Tôi đồng ý theo dòng cuối cùng trong câu trả lời của mình :)
Rinzwind

2
@Rinzwind, bạn nói đúng, kho lưu trữ của tôi có thiết kế bị lỗi. Nhiều loại trừ và vẫn không đủ loại trừ nên việc khôi phục lại là một mớ hỗn độn và nguy hiểm vì đó sẽ là ghi đè Maverick lên Chính xác. Kho lưu trữ tiếp theo của tôi sẽ được bao gồm nghiêm ngặt. Đề nghị của bạn về phục hồi thủ công là một trong những tốt.
H2ONaCl

8

Từ tar (1) :

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

Có vẻ rõ ràng với tôi. Nếu các tệp trong tarball được lưu trữ tương đối với homedir cũ của bạn:

tar xvkf backup.tar.gz -C ~

Điều này cũng hoạt động trong khi nén.
nyxee

@nyxee Nó cũng hoạt động khi cố gắng giải nén một kho lưu trữ nén (ví dụ tar xvkzf backup.tar.gz -C ~). Tôi không nghĩ rằng nó được nhận ra khi bạn cố gắng tạo một archvie mới ( tar czf foo.tar.gz foo/) nếu bạn hỏi về điều đó.
Lekensteyn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.