Tôi đang sử dụng mô-đun Archive::Tar của Perl. Vấn đề với nó là nó kéo tất cả mọi thứ vào bộ nhớ và lưu trữ và sau đó ghi vào hệ thống tập tin để có giới hạn về kích thước tập tin tối đa có thể được lưu trữ. Hầu hết thời gian nó nói ra khỏi trí nhớ. Trong trường hợp của GNU tar, nó có đoạn của tập tin, lưu trữ nó và ghi nó vào bộ nhớ để nó có thể xử lý các tập tin có kích thước bất kỳ. Làm thế nào tôi có thể làm điều đó bằng cách sử dụng mô-đun Lưu trữ :: Tar của Perl.Làm cách nào để tar các tệp lớn hơn bộ nhớ vật lý bằng cách sử dụng Lưu trữ :: Tar của Perl?
Trả lời
Dường như có một mô-đun khác không sử dụng cấu trúc trong bộ nhớ: Archive::Tar::Streamed. Nhược điểm là nó đòi hỏi tar để có sẵn trên hệ thống nó được chạy trên. Tuy nhiên, nó là tốt hơn so với puppet-stringing tar mình.
Có vẻ như Archive::Tar::Wrapper là đặt cược tốt nhất của bạn. Tôi đã không thử nó bản thân mình, nhưng nó sử dụng tar
thực thi hệ thống của bạn và không giữ các tập tin trong bộ nhớ.
Trái với Chas. Câu trả lời của Owen, Archive::Tar::Streamedkhông lưu giữ tệp trong bộ nhớ và không sử dụng hệ thống tar
của hệ thống. Nó thực sự sử dụng Archive::Tar nội bộ, nhưng nó xử lý một tập tin tại một thời điểm (lợi dụng thực tế là lưu trữ tar có thể được nối). Điều này có nghĩa là Archive :: Tar :: Streamed có thể xử lý các lưu trữ lớn hơn bộ nhớ, miễn là mỗi tệp riêng lẻ trong tệp nén sẽ vừa trong bộ nhớ. Nhưng đó không phải là những gì bạn yêu cầu.
Tôi cho rằng nhược điểm chính của một số người là lớp Wrapper không hoạt động trong Windows, nếu tôi không nhầm, vì nó không có chức năng dòng lệnh 'tar'. Trong trường hợp như vậy, Streamed là một đặt cược tốt hơn. –
- 1. Làm cách nào để lưu trữ thư mục trong Perl như tar trong UNIX?
- 2. Cách tách đường dẫn trong khi lưu trữ với TAR
- 3. Làm cách nào để trích xuất tệp tar trong Java?
- 4. Cách phân tích tệp tar trong C++
- 5. cách giữ quyền sở hữu tệp trong khi sử dụng tar
- 6. Cách gỡ bỏ tệp TAR bằng cách sử dụng Apache Commons
- 7. Ruby: Tạo một kho lưu trữ Gzipped Tar
- 8. Có cách nào để xuất đầu kho lưu trữ hg hiện tại bằng một quả bóng tar
- 9. sử dụng hàm tar trong của R trên các tệp cụ thể
- 10. Làm cách nào để xử lý tệp bộ nhớ cache?
- 11. Tách tệp bằng tar, gz, zip hoặc bzip2
- 12. Mô-đun `tarfile` của Python có lưu trữ các kho lưu trữ được xây dựng trong bộ nhớ không?
- 13. Làm thế nào để liệt kê tất cả các mục của tệp tar trong java?
- 14. Cách [tar và] nén các tệp được đánh dấu trong Emacs
- 15. bộ nhớ đã cạn kiệt: đối với các tệp lớn bằng cách sử dụng khác
- 16. Làm cách nào để tải xuống tệp đính kèm IMAP qua SSL và lưu chúng cục bộ bằng Perl?
- 17. Làm thế nào để tạo phẳng archive tar
- 18. Làm cách nào để trích xuất một tệp từ tar sang một thư mục khác?
- 19. Tôi làm cách nào để sử dụng bộ nhớ cục bộ để lưu trữ giá trị của nhiều biến?
- 20. Không mmap với MAP_NORESERVE bộ nhớ vật lý dự trữ?
- 21. Cách bao gồm .htaccess trong lệnh tar?
- 22. cách sử dụng tar và trích xuất mọi thứ trừ một số tệp nhất định?
- 23. Làm cách nào tôi có thể sử dụng tác vụ Ant tar và giữ quyền truy cập tệp?
- 24. Tôi làm cách nào để Apache xử lý các tệp .pl (Perl) bằng cách sử dụng mod_perl?
- 25. tar/gzip không bao gồm các tệp nhất định
- 26. Làm thế nào để phát hiện quyền truy cập tệp khi trích xuất tệp tar?
- 27. Làm cách nào để quản lý kho lưu trữ git lớn?
- 28. Tạo PDF trong bộ nhớ thay vì tệp vật lý
- 29. Tar một thư mục, nhưng không lưu trữ đầy đủ đường dẫn tuyệt đối trong kho lưu trữ
- 30. Linux Bộ nhớ ánh xạ tập tin dự trữ rất nhiều bộ nhớ vật lý
Tài liệu dành cho 'Lưu trữ :: Tar :: Đã phát trực tuyến 'cho biết *" Nó cũng nhằm mục đích di động và có sẵn trên nền tảng không có bản gốc "*. Vì bạn là câu trả lời được chấp nhận, bạn có thể muốn cập nhật nó. – Borodin