Bạn có thể sử dụng GNU song song để làm điều đó vì nó có thể giới hạn số lượng phần tử cho một công việc cũng như cung cấp số công việc (cho một tên lưu trữ zip duy nhất):
$ touch $(seq 20)
$ find . ! -name "*.zip" -type f -print0 | parallel -0 -N 5 zip arch{#} {}
adding: 1 (stored 0%)
adding: 10 (stored 0%)
adding: 11 (stored 0%)
adding: 12 (stored 0%)
adding: 13 (stored 0%)
adding: 14 (stored 0%)
adding: 15 (stored 0%)
adding: 16 (stored 0%)
adding: 17 (stored 0%)
adding: 18 (stored 0%)
adding: 19 (stored 0%)
adding: 2 (stored 0%)
adding: 20 (stored 0%)
adding: 3 (stored 0%)
adding: 4 (stored 0%)
adding: 5 (stored 0%)
adding: 6 (stored 0%)
adding: 7 (stored 0%)
adding: 8 (stored 0%)
adding: 9 (stored 0%)
$ ls
1 11 13 15 17 19 20 4 6 8 arch1.zip arch3.zip
10 12 14 16 18 2 3 5 7 9 arch2.zip arch4.zip
Tùy chọn -N 5giới hạn số lượng tệp là 5 trên mỗi tệp lưu trữ và được trình bày zipthay cho{}
{#}( Nguyên văn, không được thay thế bởi bạn trong khi gọi), được thay thế bằng số công việc, dẫn đến arch1.zip, arch2.zipv.v.
Các -print0tùy chọn để findvà -0tùy chọn để parallelsong song chắc chắn rằng tên tập tin với các nhân vật đặc biệt được xử lý một cách chính xác.