Programmer briser tous les files dans le directory le long des limites de taille?

Ok, donc j'ai un directory qui contient beaucoup de files. Ces files sont des archives hautement compressées de documents, et je veux les stocker sur un set de DVD. C'est-à-dire, je veux avoir chaque archive sur un disque, ou plusieurs disques si sa taille l'exige.

La chose est, certaines des archives sont petites, et certaines sont très grandes (3-4 DVD). Donc, je ne peux pas raisonnablement mettre chaque archive sur son propre disque. Une solution évidente à ce problème est de lrzip -o archive.lrzip ./* puis de split -b 4700M archive.lrzip , mais cela signifie que chaque fois que je veux des files (ou des archives), je dois récupérer TOUS les disques , copyr sur toute la collection, etc.

Je peux évidemment utiliser split et déterminer manuellement les limites du disque, par exemple: archive 1G, archive 3G, et split une archive 2G en parties pour remplir le disque, mais c'est lent.

Je sais que c'est un peu une description du problème compliqué, mais je pense que le problème est très facile à comprendre. Quelqu'un sait-il un moyen de split ces files le long des limites moyennes (que ce soit 4,7 Go de DVD, ~ 50 Go de Blu-ray, 500 Go de bande, etc.)?

EDIT: Après avoir montré le problème du bin-packing, c'est une façon de résoudre ce que je veux faire, et en considérant l'idée d'un directory global, cela pourrait fonctionner, mais je préférerais garder les archives par ordre alphabétique, mais n'est pas nécessaire.