Cách giải nén tệp chia nhỏ trên OS X


40

Làm cách nào để giải nén tệp zip tách?

Trong Terminal, tôi đã viết: unzip filename.zipvà nó không giải nén tệp này.

Thiết bị đầu cuối đã viết:

$ unzip filename.zip
Archive:  filename.zip
warning [filename.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).
file #1:  bad zipfile offset (local header sig):  4
file #2:  bad zipfile offset (local header sig):  98
file #3:  bad zipfile offset (local header sig):  471
file #4:  bad zipfile offset (local header sig):  6635222

Nhấp đúp chuột vào việc tạo tập tin này filename.zip.cpgz

Tôi có thể làm gì?


1
Vì vậy, có bất kỳ phần nào khác của tập tin này hay bạn chỉ có một phần này? Nếu bạn chỉ có một, bạn có đang cố gắng để có được nội dung của phần này không?
slhck

Bạn đã thử các công cụ giải nén khác chưa? Tôi đã chạy giải nén và gunzip trên tệp và xem nếu được xử lý với một trong số đó.
Wilersh

Không có vấn đề gì để giải nén nhiều kho lưu trữ bằng unarchiver.app nhưng tôi đang tìm kiếm lệnh terminal để thực hiện việc này mà không cần sử dụng bất kỳ ứng dụng nào.
Kris

Đầu tiên tôi sẽ mang nó đến một hộp Windows và thử 7Zip trên nó. Nếu điều đó không hiệu quả, tôi sẽ cố gắng tìm phần còn lại của các tập tin zip và ghép chúng lại với nhau.
Daniel R Hicks

Câu trả lời:


51

Đây là giải pháp thẳng và duy nhất phù hợp với tôi trên OS X (lấy từ đây ).

1. Để tạo một kho lưu trữ zip tách (một loạt các tệp có tên zip, z01, z02 ...), hãy chạy lệnh sau trong Terminal:

zip -s 100m -x "*.DS_Store" -r split-foo.zip foo/

2. Để giải nén một kho lưu trữ zip tách (một loạt các tệp có tên zip, z01, z02 ...), hãy chạy lệnh sau trong Terminal:

Đầu tiên, kết hợp lưu trữ phân chia thành một kho lưu trữ duy nhất:

zip -s 0 split-foo.zip --out unsplit-foo.zip

Trích xuất kho lưu trữ duy nhất bằng cách giải nén:

unzip unsplit-foo.zip

22
nếu bạn đã chia nhị phân, như file.zip.001, file.zip.002 ... bạn có thể chỉ cần kết hợp các tệp, ví dụ như sử dụng catlệnh:cat file.zip.* > single.zip
Karl Adler

@abimelex bình luận của bạn đã giúp giải quyết tình huống chính xác của tôi!
Daniel Apt

Bạn là người đàn ông @abimelex !!!!! - Tôi đã phải sử dụng p7zip để giải nén chúng vì lỗi này:need PK compat. v5.1 (can do v4.5)
bryan

Tôi rất vui lòng giúp đỡ. Vì bình luận có rất nhiều lượt bình chọn, tôi cũng đã thêm nó vào làm câu trả lời.
Karl Adler

10

Chỉ cần cattất cả các tệp zip theo thứ tự thành một tệp duy nhất và sử dụng unziplệnh trên đó.

Ví dụ:

cat file.zip.001 > s.zip 
cat file.zip.002 >> s.zip
cat file.zip.003 >> s.zip

unzip s.zip 

7

ngoài ra với câu trả lời này nếu bạn đã phân chia nhị phân, như file.zip.001, file.zip.002... bạn có thể chỉ cần kết hợp các tệp, ví dụ như sử dụng lệnh cat:

cat file.zip.* > single.zip

3

Chỉ cần chạy lệnh này trên dấu nhắc bash để nối các khóa.

for i in `seq 1 5`; do cat file.zip.0$i>>uncut-version.zip; done

ví dụ trên có 5 phần.

Sau đó giải nén tệp bằng phương pháp yêu thích của bạn

unzip uncut-version.zip

2

Đã thử nghiệm trên hệ điều hành Mac 10.8.5

  • Sử dụng Stuffit Expander phiên bản miễn phí
  • Chỉ cần kéo tệp cuối cùng (tệp có đuôi .ZIP) trong Stuffit
  • Đợi một lúc vì nó seeme Stuffit xây dựng lại tập tin hoàn chỉnh đầu tiên
  • Xem tất cả các tập tin của bạn được giải nén

2

Trong trường hợp của tôi, trong OS X 10.11.6, tôi đã có một kho lưu trữ nhiều phần với các phần mở rộng

.z01
.z02
... (etc)
.zip

Sử dụng

zip -s 0 in.zip --out out.zip

đã làm cho tôi một zip duy nhất. Nó không giải nén bằng unzip, nhưng đã làm với 7zip, được cài đặt qua MacPorts:

port install p7zip
7za x out.zip

1

Tôi gặp phải vấn đề này khi cố gắng lắp ráp lại một thư mục lớn được tải xuống từ Google Drive.

Tương tự như vấn đề này , nếu bạn đang xử lý một tập hợp các tệp zip không bao gồm các phần mở rộng tệp được đánh số (foo.z01, foo.z02, v.v.) và chỉ đơn giản là nhiều tệp zip nên được lưu trữ cùng một thư mục, sau đây làm việc cho tôi:

unzip '*.zip' -d /path/to/unzip/destination

0

Đây là giải pháp đơn giản nhất tôi có thể tìm thấy:

find ./ -name "*.zip" -exec unzip {} \;

-1

Điều làm việc cho tôi rất đơn giản: Mở tệp .z01 bằng ứng dụng Mac miễn phí The Unarchiver (có sẵn từ Mac App Store). Nó xử lý khai thác độc đáo.

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.