Tách tệp gzip thành các tệp gz nhỏ hơn mà không cần giải nén


9

Tôi có một tập tin .gz lớn. Tôi muốn chia nó thành 100 tệp gzip nhỏ hơn, mỗi tệp có thể được giải nén. Nói cách khác: Tôi không tìm cách băm nhỏ tệp .gz thành các khối sẽ phải được đặt lại với nhau để có thể giải nén nó. Tôi muốn có thể giải nén từng tệp nhỏ hơn một cách độc lập.

Nó có thể được thực hiện mà không cần giải nén toàn bộ tập tin không?

Nó có thể được thực hiện nếu tập tin gốc được nén với --rsyncable? ("Phục vụ tốt hơn cho chương trình rsync bằng cách định kỳ đặt lại cấu trúc bên trong của luồng dữ liệu nén." Nghe có vẻ như các điểm đặt lại này có thể là nơi tốt để phân chia và có thể đặt trước một tiêu đề.)

Nó có thể được thực hiện cho bất kỳ định dạng nén nào khác không? Tôi sẽ tưởng tượng bzip2sẽ có thể thực hiện được - vì nó được nén trong các khối.


Bạn đã thử chia -b chưa?
George Vasiliou

3
@GeorgeVasiliou Nó sẽ không dẫn đến các tệp gzip nhỏ hơn có thể được giải nén.
Ole Tange

Câu trả lời cho câu hỏi đầu tiên của bạn là không, điều này đã được đề cập trong Xóa dòng cuối cùng của tệp gz . Câu trả lời có lẽ là không với hầu hết các định dạng nén, vì những gì bạn yêu cầu đi ngược lại với nén. Tôi nghĩ rằng câu trả lời cũng không có khi gzip --rsyncableđưa ra rằng súng gunzip không thể nói lên sự khác biệt (nếu bạn có thể tìm một nơi để phân chia, bạn có thể nói rằng có một nơi để phân chia). Nó có thể được thực hiện với bzip2 vì tính năng khối đặc biệt của nó.
Gilles 'SO- ngừng trở nên xấu xa'

Điều này có thể giúp: stackoverflow.com/a/22628945/4941495 Chỉ cần để luồng đầu vào tiêu chuẩn là đầu ra của gzip -d -c bigfile.gz.
Kusalananda

Nếu không giải nén, nó thực sự có thể thực hiện được với một bzip2tệp. Nó có thể được thực hiện bằng gzhoặc xzchỉ bằng cách nén từng đoạn độc lập, do đó, điều này sẽ đòi hỏi phải giải nén.
xhienne

Câu trả lời:


0

Tách và nối các tệp lớn hoạt động, nhưng không thể giải nén các phần của tệp nén, vì các thông tin cần thiết được phân phối thông qua toàn bộ tập dữ liệu. Cách khác; tách tập tin không nén và nén các phần đơn lẻ. Bây giờ bạn có thể giải nén từng mảnh. Nhưng tại sao? Bạn phải hợp nhất tất cả các phần được giải nén trước khi xử lý thêm.


1
Thực tế thú vị: Khi bạn có các phần được nén riêng lẻ (sử dụng gziphoặc xz), bạn có thể thực hiện ghép và giải nén, hoặc giải nén và ghép. Thứ tự không quan trọng.
Kusalananda

Có lẽ, nó phụ thuộc vào dữ liệu. Nếu bạn tách và nén ảnh đĩa, bạn có cơ hội khôi phục các phần của hệ thống tệp. Nếu bạn nén đầu tiên và sau đó tách ra, bạn chắc chắn không có cơ hội.
ingopingo

Không, và đó cũng không phải là tiền đề của tôi. Tôi chỉ nói rằng thứ tự bạn thực hiện ghép và giải nén khi bạn có các phần nén riêng lẻ không quan trọng (điều này là do các định dạng tệp nén). Nếu nén trước, sau đó tách, thì rõ ràng người ta cần kết hợp lại trước.
Kusalananda

Ai cha, hay đây. Nó hoạt động, mặc dù mỗi phần chứa một tiêu đề tệp riêng lẻ!
ingopingo
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.