Je suis en train de compresser une liste de fichiers d'un répertoire au format suivant:
tar -cvjf test_1.tar.gz -T test_1.lst --no-récursivité
La commande ci-dessus ne compresse que les fichiers mentionnés dans la liste. Je le fais parce que cette liste est générée de manière à correspondre à un DVD. Cependant, pendant la compression, le taux de compression diminue la taille estimée du fichier et il reste beaucoup d’espace libre sur le DVD. Cela ressemble à un algorithme Knapsack.
Je voudrais estimer la taille du fichier compressé et ajouter quelques fichiers supplémentaires à la liste. J'ai trouvé qu'il est possible d'estimer la taille du fichier à l'aide de la commande suivante:
tar -cjf - Dossier / | wc -c
Cette commande ne prend pas de paramètre de liste. Existe-t-il un moyen d'estimer la taille du fichier compressé? Je cherche aussi des options comme les scripts Perl, etc.
Modifier:
Je pense que je devrais fournir plus d'informations car j'ai beaucoup fait de recherches sur le Web. Je suis tombé sur un script Perl ( Link ) qui imite en quelque sorte l'algorithme Knapsack.
Le problème actuel avec le script mentionné ci-dessus est qu'il divise les fichiers dans leur état d'origine. Lorsque je compresse les fichiers après les avoir scindés, il est possible d'ajouter d'autres fichiers que je considère inefficaces.
Il y a deux manières de résoudre l'inefficacité:
a) Compressez les fichiers individuels et enregistrez-les dans un répertoire à l'aide d'un script. Le fichier compressé pourrait fournir une meilleure estimation. Je pourrais générer un script en utilisant un dossier de fichiers compressés et les utiliser sur les fichiers non compressés.
b) Vérifiez si la taille du fichier compressé est inférieure à la taille requise. Si c'est le cas, je devrais continuer à ajouter des fichiers jusqu'à ce que je remplisse cette condition. Cependant, l'ajout de nouveaux fichiers au fichier compressé est un problème d'optimisation en soi.
la source