Câu trả lời:
Nó phụ thuộc vào việc nó xảy ra với tất cả tar.gz
các tập tin hay chỉ cái này. Tập tin cụ thể này có thể bị hỏng và vì vậy sẽ không mở đúng cách. Nếu sử dụng tar để giải nén, bạn cần sử dụng z
tùy chọn, vì điều đó là cần thiết khi kho lưu trữ được nén tar xzvf <file.tar.gz>
. Ngoài ra, nó cũng đáng để thử giải nén nó vớigunzip <file.tar.gz>
Để tìm hiểu xem tập tin có bị hỏng hay không, hãy chạy gzip -t <file.tar.gz>
; lệnh này sẽ kiểm tra tệp để tìm lỗi và nếu tìm thấy chúng sẽ xuất hiện trong terminal. Điều này sẽ cho bạn biết liệu tập tin bị hỏng.
Nếu tệp là âm thanh và lỗi xảy ra, điều đó có nghĩa đó có thể là sự cố đã biết với tar xảy ra khi một tệp không có một cặp zero blocks
ở cuối của nó, như GNU tar mong đợi. Giải pháp cho vấn đề này là thêm -i
tùy chọn bỏ qua zero blocks
. Vì vậy, sử dụng tar ixzvf <file.tar.gz>
Vấn đề được ghi lại ở đây một cách chi tiết.
Điều tương tự cũng xảy ra với tôi bởi vì tôi đã dẫn cả thiết bị xuất chuẩn và thiết bị xuất chuẩn thông qua một kênh không tách rời thiết bị xuất chuẩn và thiết bị xuất chuẩn (phiên cuối của thiết bị đầu cuối adb Android).
Bằng cách đó, một số thông báo lỗi đã kết thúc trong luồng. Đây là lệnh bị lỗi:
Lệnh bị lỗi, adb shell chỉ hợp nhất stderr và stdout cục bộ => rác! :
adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar
Đã sửa lệnh:
adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar
Điều tương tự sẽ xảy ra nếu bạn thực hiện một lệnh tương tự trên SSH như cách truyền phát nhanh tar này qua ssh nếu bạn quên chuyển hướng stderr sang / dev / null:
ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz
Tôi đã gặp lỗi này vào một ngày khác khi cố gắng gỡ bỏ một kho lưu trữ không được nén. Không rõ nguồn gốc của tệp nhưng tôi đoán rằng người tạo có thể sử dụng cat
để kết hợp nhiều tars thành một. Điều này khiến cho điểm đánh dấu số cuối của tệp được đọc bởi tar
tiện ích ở giữa kho lưu trữ kết hợp, do đó hiển thị lỗi "Khối không đơn độc".
Nếu đây là trường hợp thì --ignore-zeros
hoặc -i
tùy chọn có thể giúp loại bỏ các lỗi này. Xin vui lòng xem man tar
hoặc liên kết này là một tài liệu tham khảo.
RequestTTY yes
trong ssh_config. Có thể bị vô hiệu hóa rõ ràng với-T Disable pseudo-tty allocation.
Đối với tôi, lỗitar: Skipping to next header
ban đầu, khối không đơn độc xảy ra khi tôi thử với--posix
..