Tôi có một quá trình song song lúng túng tạo ra một lượng lớn các tệp gần như (nhưng không hoàn toàn). Có cách nào để lưu trữ các tệp "nhanh chóng" để dữ liệu không tiêu tốn nhiều dung lượng hơn mức cần thiết không?
Quá trình tự chấp nhận các tham số dòng lệnh và in tên của từng tệp được tạo ra thiết bị xuất chuẩn. Tôi đang gọi nó với nhiệm parallel --gnu
vụ phân phối đầu vào (xuất phát từ quy trình khác) và thu thập đầu ra:
arg_generating_process | parallel --gnu my_process | magic_otf_compressor
VÍ DỤ SIMPLE cho phần đầu tiên của đường ống trong bash
:
for ((f = 0; $f < 100000; f++)); do touch $f; echo $f; done
Làm thế nào có thể magic_otf_compressor
trông như thế nào? Bạn nên coi mỗi dòng đầu vào là tên tệp, sao chép từng tệp vào .tar
kho lưu trữ nén (cùng một tệp lưu trữ cho tất cả các tệp được xử lý!) Và sau đó xóa nó. (Trên thực tế, nó là đủ để in tên của từng tệp được xử lý, một tệp khác | parallel --gnu rm
có thể đảm nhiệm việc xóa các tệp.)
Có công cụ nào như vậy không? Tôi không xem xét việc nén từng tệp riêng lẻ, điều này sẽ lãng phí quá nhiều dung lượng. Tôi đã xem xét archivemount
(sẽ giữ cho hệ thống tệp trong bộ nhớ -> không thể, các tệp của tôi quá lớn và quá nhiều) và avfs
(không thể làm cho nó hoạt động cùng với FUSE). Tôi đã bỏ lỡ những gì?
Bản thân tôi chỉ cách một bước để hack một công cụ như vậy, nhưng ai đó phải làm nó trước đây ...
EDIT : Về cơ bản, tôi nghĩ rằng tôi đang tìm kiếm một stdin front-end cho libtar
(trái ngược với front-end dòng lệnh tar
đọc các đối số từ, tốt, dòng lệnh).