Làm cách nào để thực hiện các tập tin của Wikipedia để lưu trữ mà không cần nén nén trong 7-zip?


25

Có cách nào để ngăn chặn có chọn lọc các loại tệp nhất định khỏi nén trong 7-zip, như trong WinRAR không?

Tôi đang cố nén một thư mục lớn (nhiều gigabyte) và tôi không muốn các tệp đã được nén (ví dụ: tệp ZIP) được nén lại - chúng nên được lưu trữ mà không cần nén.


Có một lý do cụ thể (tiết kiệm từng chút thời gian xử lý có thể, đọc chúng mà không phải gói nhị phân 7z hoặc thực hiện lại LZMA, v.v.) mà bạn muốn làm điều này không? Nói chung, hầu hết các công cụ nén mà tôi chạy có xu hướng đủ thông minh để tự động lưu trữ những thứ không nén nếu chúng tìm thấy một tệp phản hồi kém với nỗ lực nén thêm.
ssokolow

@ssokolow: Đã 4 năm và tôi đoán tôi chưa bao giờ trả lời câu hỏi của bạn, nhưng có thể có những lý do khác như giảm thiểu thiệt hại từ tham nhũng và cũng giúp khôi phục dữ liệu trong thảm họa dễ dàng hơn.
Mehrdad

Câu trả lời:


19

Có, có thể có các phương pháp nén khác nhau cho các tệp khác nhau trong cùng một kho lưu trữ 7-Zip.

Sử dụng phiên bản dòng lệnh của 7-Zip với -mtham số để chỉ định phương thức là Copy, có nghĩa là không nén.

Thí dụ :

7za a -m0=Copy tmp7.7z *.txt

Để biết thêm thông tin, hãy xem công tắc -m (Đặt phương thức nén) .


Lệnh trên sẽ không nén các tệp txt và chỉ thêm các tệp txt vào kho lưu trữ hiện có. Trước khi chạy lệnh trên, một tệp lưu trữ phải được tạo bằng các tệp không phải là txt. Không dễ dàng như vậy nếu có n loại tệp khác nhau.
Praveen Sripati

Nếu -m0=Copykhông hiệu quả, hãy thử -mx=0.
Bora M. Alper

15

Giả sử bạn có tệp zip và bạn có tệp txt không nén trong thư mục của mình.

Bước đầu tiên là tạo một kho lưu trữ nén các tệp txt bằng lệnh sau.

bạn có thể sử dụng -m để cài đặt mức độ nén, điều này cũng phụ thuộc vào phương pháp nén bạn đang sử dụng

Cho phép ở đây chỉ là nén mặc định

7z a compressed.7z *.txt -r 

Bạn sẽ nhận được nén.7z ngay bây giờ.

Bước thứ hai sẽ là sao chép tệp đã nén vào kho lưu trữ này hoặc tạo một kho lưu trữ mới

7z u compressed.7z -u!update.7z -mx0 *.zip 

Có thêm chi tiết về lệnh cập nhật ở đây

Và trong trường hợp bạn có quyền tự do sử dụng giao diện đồ họa, việc cập nhật có thể được thực hiện theo cách sau

nhập mô tả hình ảnh ở đây


Một loại rắc rối nhưng tôi đoán rằng sẽ làm việc, cảm ơn.
Mehrdad

1

Tôi đã tạo một tập lệnh PowerShell sẽ nhanh chóng nén một thư mục bằng cách lưu trữ các kiểu tệp đã được nén (như các tệp .zip) mà không cố nén lại chúng. Nó sử dụng giao diện dòng lệnh của 7zip và sử dụng các phần mở rộng tên tệp để quyết định nén hay đơn giản là lưu trữ bất kỳ tệp nào.

Bạn có thể tìm thấy tập lệnh tại đây: https://gist.github.com/ivanatpr/5dea086172ables573ba71


0

Về mặt kỹ thuật, các tệp nén không nén thêm, một cái gì đó về giới hạn entropy hoặc như vậy, tôi quên các chi tiết, nhưng hầu hết những gì bạn nhận được là ít hơn 2% mà tôi đã thấy.

Hầu hết các máy nén tốt đều kiểm tra việc nén và chỉ đơn giản là lưu trữ các tệp không nén được kể từ khi nén sau đó sẽ thêm chi phí và tăng kích thước.

Tất nhiên, có công việc & thời gian xem tập tin ở nơi đầu tiên.

Như đã thảo luận trong các câu trả lời khác, thực hiện nhiều lần vượt qua tập tin của bạn có lẽ sẽ là giải pháp tốt nhất và có thể dễ dàng viết kịch bản.

Tạo kho lưu trữ 7z và thêm mọi thứ NHƯNG các tệp được nén trong một lần, sau đó nối các tệp được nén trước dưới dạng dữ liệu không được nén. (Tôi sẽ làm theo cách này vì các công cụ có thể nén sau đó sẽ ở phần đầu của kho lưu trữ và tất cả không thể nén được ở cuối. Nó sẽ tắt ổ đĩa nhanh hơn vì nó liền kề)

(đã sử dụng 'nén ...' quá nhiều!)


1
Trong trường hợp nó giúp được bất cứ ai, đây là ý chính của "một cái gì đó về giới hạn entropy hoặc như vậy". Entropy có thể được coi là một biện pháp không thể đoán trước. Ý tưởng đằng sau việc nén là, nếu bạn có thể dự đoán một mẫu bit, bạn không cần lưu trữ toàn bộ ... chỉ cần các hướng dẫn nhỏ gọn hơn về cách dự đoán nó (một từ mã). Entropy tối đa theo lý thuyết đạt được khi có khả năng tương tự rằng từ mã tiếp theo có thể là bất cứ thứ gì. Việc nén nhiều dữ liệu nén hơn xảy ra khi vượt qua lần thứ hai xác định khả năng dự đoán còn sót lại ở đầu ra của lần đầu tiên.
ssokolow
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.