Suite des questions posées sur le topic général de présentation des scripts :
LittleWhite a écritdraco31.fr a écritLittleWhite a écritJ'ai fais un script de compression qui peux faire plusieurs fichiers , et les recoller :
Dépendances :
- zenity
Bonjour LittleWhite !
Ton script est interressant mais je ne suis pas sûr qu'il soit très "robuste".
En fait, je n'ai pas eu le temps de le tester mais je me pose déjà des questions :
1- Que se passe-t-il si il y a plusieurs fichiers en .001 dans le dossier au moment du décompactage ?
2- Comment es-tu sûr que 'cat' recolle les fichiers "dans l'ordre" ?
3- Comment fais-tu pour vérifier si le fichier reconstruit est complet et qu'il ne manquait pas une "part" ?
Bonjour,
Excuse moi du décalage entre la question et la réponse dans le forum ...
Tes remarques sont très bonnes, le script n'est pas du tout robuste.
1 - Il va les collait ensemble ( pour peu que le nom soit le même avant le .001 )( ce qui va donc faire des archives corrompu ). Mais du coup, si t'utilise le script pour compresser , le même fichier donc, tu vas ecraser les archives nom.001 par la nouvelle compression donc normalement tu te trouve avec que des archives de la même compression, après bien tu peux mélanger les fichiers de compression différente ( qui diffère quand taille d'archive ) mais c'est chercher le bug ... ( enfin un programmeur doit toujours prevoir tous les cas )
2 - Disons que je ne suis pas sur ( enfin pas personnellement ) , le developpeur de linux ( du moins celui qui a fais la gestion des regex ( expression régulières ) dirai qu'il va toujours dans l'ordre des possibilité ( soit 0 - 1 - 2 ... ) Je pense que l'on peut donc admettre que cela marche ( enfin que quelqu'un prouve le contraire )
3 - Oki , bah la je suis entièrement d'accord je ne sais pas s'il me manque une part , peut etre dans la version future du script.
( Pour les mis à jour , il est préférable d'aller sur le post qui est dans ma signature )
PS : Je débute en programmation de script sous bash, et ton script me donne enormément d'info utiles, mais du coup je me pose encore plus de questions !!!
Plus on apprend, plus on se pose des questions, plus on veut savoir
1- Je n'avais pas bien saisi que l'utilisateur devait saisir un des
fichiers à décompacter (je pense que l'on selectionnait le dossier contenant !)
Il n'est donc pas possible d'avoir dans un même dossier plusieurs fichiers avec la même racine ... sauf cumul de plusieurs action avec une taille de "paquet" différente.
2- Pourquoi ne pas passer la liste des fichiers via un ls + sort pour s'assurer du respect de l'ordre.
3- Peut-être serait-il possible de créer un fichier .sfv une fois le découpage terminé qui servirait au contrôle avant recollage !
En fait, je me suis imaginé l'utilisation suivante :
L'utilisateur choisit un fichier (p.e 100 Mo) pour découpage et choisit : unité : Mo - taille : 10
Le script va créer les parts .001 à .010 de 10 Mo chacune.
Ce même utilisateur relance ensuite le script sur le même fichier (100 Mo) et choisit : unité : Mo - taille : 20
Le sript va créer les parts .001 à .005 en écrasant les parts existantes.
Si maintenant l'utilisateur veut décompacter le fichier, il va choisir une des parts présentes (entre 001 et 100 !) et le script va coller les parts 001 à 100 soit 5*20 Mo + 5*10 Mo = 150 Mo !!!
Il est possible que je dise une grosse bêtise et que tar ou split plantent si le fichier existe déjà !
Il serait peut-être bon de vérifier qu'il n'existe pas au moins un fichier "${compress}".tar.bz2.001 et de demander la suppression de tout les fichiers "${compress}".tar.bz2.* au cas où le fichier précédent existerait et avant de commencer le compactage/découpage.
PS : Je me rends que c'est extrêmement difficile de prévoir tout les cas tordu qu'un utilisateur peut faire !