Có cách nào để xác định kích thước giải nén của tệp .bz2 không?


34

Có cách nào để in kích thước giải nén của tệp .bz2 mà không thực sự giải nén toàn bộ không?


Vì vậy, không có siêu dữ liệu về tập tin gốc trong đầu ra bzip? > :(
endolith

không phải là tôi đã thấy tài liệu tham khảo. : /
quack quixote

Câu trả lời:


36

Theo ghi nhận của những người khác, bzip2 không cung cấp nhiều thông tin. Nhưng kỹ thuật này hoạt động - bạn sẽ phải giải nén tệp, nhưng bạn sẽ không phải ghi dữ liệu giải nén vào đĩa, đây có thể là một giải pháp "đủ tốt" cho bạn:

$ ls -l foo.bz2
-rw-r--r-- 1 ~quack ~quack 2364418 Jul  4 11:15 foo.bz2

$ bzcat foo.bz2 | wc -c         # bzcat decompresses to stdout, wc -c counts bytes
2928640                         # number of bytes of decompressed data

Bạn có thể chuyển đầu ra thành một thứ khác để cung cấp cho bạn một dạng có thể đọc được:

$ ls -lh foo.bz2
-rw-r--r-- 1 quack quack 2.3M Jul  4 11:15 foo.bz2

$ bzcat foo.bz2 | wc -c | perl -lne 'printf("%.2fM\n", $_/1024/1024)'
2.79M

9
Chà, chỉ mất năm phút CPU 100% để tính toán.
endolith

2
chỉ có? VÀ nó sẽ lấp đầy một đĩa? Tôi đã có một tarball nén của một bản cài đặt linux cũ chỉ mới có 40meg nhưng máy chủ cổ xưa nghèo nàn của tôi mất 30-45 phút để giải nén. bao gồm ghi vào đĩa, tho, tôi sẽ phải chạy tập lệnh đó để tính thời gian. quay lại với bạn sau nửa giờ nữa ... :)
quack quixote

Tôi đã chọn tập tin nhỏ nhất cho bài kiểm tra đầu tiên, tất nhiên. Nén 140 MB -> 3 GB không nén. Các tập tin lớn hơn được 5 GB nén ...
endolith

heh .. tôi biết 5GBs lớn đến mức nào ... và mất bao lâu để tìm ra nó thông qua XD
quixote quixote

-3

Để đọc tệp văn bản mở rộng .bz mà không cần giải nén.

bzcat dbtax_ext_en.ttl.bz2 |zless

1
bzcat và zless không làm việc cùng nhau như thế này. Sử dụng "bzcat file.bz2 | less" hoặc "bzless file.bz2" hoặc nếu bạn có tệp được nén, "zcat file.gz | less" hoặc "zless file.gz". Trong thực tế, trang man cho zless lưu ý rằng "Zless không hoạt động với dữ liệu nén được dẫn đến thông qua đầu vào tiêu chuẩn; nó yêu cầu các tệp đầu vào phải được chỉ định làm đối số."
Nick Russo
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.