Tôi đã làm một: tar -cvfvà tôi đã phải giết nó với ctrl-C. Tôi biết tôi nên đã thực hiện một Ctrl-Zvà sau đó đưa nhiệm vụ trở lại tiền cảnh ... nhưng đó không phải là câu chuyện.
Tôi có thể tiếp tục từ điểm tôi đã dừng nhiệm vụ không?
Tôi đã làm một: tar -cvfvà tôi đã phải giết nó với ctrl-C. Tôi biết tôi nên đã thực hiện một Ctrl-Zvà sau đó đưa nhiệm vụ trở lại tiền cảnh ... nhưng đó không phải là câu chuyện.
Tôi có thể tiếp tục từ điểm tôi đã dừng nhiệm vụ không?
Câu trả lời:
Phương pháp này sẽ tạo lại kho lưu trữ tar của bạn và nối phần hoàn thành vào tệp hiện có. Điều này có thể hữu ích nếu sao lưu qua kết nối mạng. Bạn có thể sẽ dẫn đến một kho lưu trữ bị hỏng nếu bất kỳ dữ liệu nào trong INFILES của bạn đã thay đổi. Hãy chắc chắn để kiểm tra kho lưu trữ của bạn sau khi hoàn thành.
Thay đổi INFILES và OUTFILE thành tên chính xác trên dòng sau.
INFILES="my folder"; OUTFILE="archive.tgz"; SIZE="$(wc -c < $OUTFILE)"; tar -cz --to-stdout "$INFILES" | tail -c +$(($SIZE+1)) >> "$OUTFILE"
Giải trình:
SIZE="$(wc -c < $OUTFILE)" # Lấy kích thước hiện tại của kho lưu trữ.
tar -cz --to-stdout "$INFILES" |# Bắt đầu tạo lưu trữ và gửi đầu ra cho taillệnh.
tail -c +$(($SIZE+1)) >> # Bỏ qua dữ liệu trước $ SIZE + 1 và tiếp tục phần còn lại của kho lưu trữ $ OUTFILE.
Giải pháp tốt nhất là xóa tệp tar và khởi động lại quá trình được chuẩn bị trước nohupvà nối thêm &. Ngoài ra, bạn có thể chạy tar -tfvvà sử dụng như là một loại trừ cho cái mới tar -cvf.
tar -cvfsẽ ghi đè lên tập tin hiện có. Ý bạn là tar -rvfsao Ngoài ra, tập tin cuối cùng được ghi vào kho lưu trữ có thể không đầy đủ.
                    tar -rvf?
                    Những gì tôi làm trong trường hợp, rằng tôi có một tarkho lưu trữ không đầy đủ , tôi tạo một danh sách các tệp trong kho lưu trữ:
tar tf archive.tar | sed -e '/\/$/d' -e x -e '/^$/d' >files-done
Các sedlệnh xóa tất cả những dòng này, có một dấu gạch chéo: Đây là những thư mục, không phải tập tin, và chúng tôi muốn để đổ các thư mục một lần nữa và chỉ bỏ qua các tập tin trong thư mục đó, mà chúng ta có đã có trong các kho lưu trữ tar đầu tiên. Hơn nữa, chúng tôi cho phép sedxóa tên tệp cuối cùng, vì rất có thể nó đã bị đổ chỉ một phần, vì vậy chúng tôi sẽ lưu trữ lại.
Sau đó, chỉ cần chuyển files-donedanh sách qua tùy chọn -X sang một tarlệnh mới :
tar cfvX archive2.tar files-done SOURCEDIR
Đảm bảo sử dụng tên tệp đầu ra khác trên lệnh tar mới, nếu không bạn sẽ ghi đè lên kho lưu trữ một phần của mình. Đừng cố gắn trực tiếp vào kho lưu trữ tar bị hỏng.