|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 2 ![]() |
Salut à tous,
Je cherche à répartir des fichiers d'un répertoire en N fichiers .tar ? Les fichiers doivent être répartis équitablement en taille avant de faire le tar. J'ai commencé à écrire mais ça donne des fichiers tar compressés trop différents en taille. #$1 correspond à N fichiers tar que je veux générer a=0 for i in `ls -l tmp/* | sort +4 -n` do a=`expr $a + 1` echo $i >> file`expr $a % $1` done tar cvf -`cat $file `| gzip > /tmp/$file.tar.gz Si quelqu'un a une idée ... Thanks! |
|
|
00
|
|
|
#2 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 502 ![]() |
Bonjour,
Je ne pense pas que tu puisses le faire simplement en une seule passe. Le plus simple est de calculer la taille totale des fichiers à archiver, puis de calculer quelle doit être la taille moyenne de chaque archive. Ensuite, tu écris un script qui liste les fichiers, et tu les archives tant que la taille moyenne n'est pas atteinte. Si elle est atteinte, tu crées l'archives, et tu passes à la suivante. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 2 ![]() |
Merci pour ta reponse
Il faut donc que je tri et classe les fichiers avant. Si par exemple, dans /tmp on a 200 Toto_1.txt 190 Toto_2.txt 180 Toto_3.txt 100 Toto_4.txt 80 Toto_5.txt 50 Toto_6.txt 30 Toto_7.txt 10 Toto_8.txt 5 Toto_9.txt Si on défini N=3 on génére donc 3 fichiers file1, file2, file3 -comme les fichiers sont déjà tri par taille décroissante dans /tmp - il faudra que file1 récupere Toto_1.txt file2 récupere Toto_2.txt file3 récupere Toto_3.txt ensuite file2 récupere Toto_4.txt file3 récupere Toto_5.txt file1 récupere Toto_6.txt ensuite file3 récupere Toto_7.txt file1 récupere Toto_8.txt file2 récupere Toto_9.txt ect... Le problème, c'est que je ne vois pas comment faire la rotation des fichier $file dans la boucle for ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com