Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
tp4 [2019/01/22 13:59] – gilles | tp4 [2019/01/22 14:17] (Version actuelle) – gilles |
---|
==== Q.6 - Fichiers binaires ==== | ==== Q.6 - Fichiers binaires ==== |
| |
Jusqu'à maintenant notre archiveur ne fonctionne qu'avec des fichiers //texte// c'est-à-dire dont l'encodage est restreint à une certaine plage de valeurs de la table ''ASCII''. On souhaite maintenant faire en sortes que ''create-ball.sh'' fonctionne avec tout types de fichiers, y compris binaire. | Jusqu'à maintenant notre archiveur ne fonctionne qu'avec des fichiers //texte// c'est-à-dire dont l'encodage est restreint à une certaine plage de valeurs de la table ''ASCII''. On souhaite maintenant faire en sortes que ''create-ball.sh'' fonctionne avec tout types de fichiers, y compris binaire. A l'instar de la question 4 du TP //splitter//, nous avons à notre disposition les commandes ''UNIX'' - qui sont également des filtres - suivantes. |
| |
{{ :upjv.png?600 | UPJV}} | * ''uuencode/uudecode'' |
{{ :logomis-coul.png?600 | MIS}} | * ''uuencode -m [fichier] nom'' : est utilisé pour encoder un fichier en n’utilisant que des caractères ''ASCII'' 7 bits (codes entre 0 et 127), par exemple pour le transmettre sur un réseau ne transmettant que les 7 bits de poids faible. ''uuencode'' lit le fichier (ou ''stdin'' si l’on ne précise pas de nom) et écrit la version encodée sur la sortie standard ''stdout''. Le paramètre ''nom'' précise le nom du fichier pour le décodage par ''uudecode''. |
| * ''uudecode [fichier]'' : Décode un fichier encodé par ''uuencode''. Si l’argument fichier n’est pas spécifié, ''uudecode'' lit ''stdin''. Le nom du fichier résultat est précisé dans le codage (paramètre ''nom'' de ''uuencode''). |
| |
- Faites en sorte que ''create-ball.sh'' soit en mesure d'archiver (et de désarchiver) des fichiers binaires. | Faites en sorte que ''create-ball.sh'' soit en mesure d'archiver (et de désarchiver) des fichiers binaires. Vous pourrez par exemple tester sur les 2 images ci-dessous. |
- Apportez à votre archiver la fonctionnalité d'archivage d'une branche de l'arborescence | |
| {{ :upjv.png?300 | UPJV}} |
| {{ :logomis-coul.png?300 | MIS}} |
| |
| ==== Q.7 - Gestion de l'arborescence ==== |
| |
| En vous basant sur les réponses aux questions 4, 5, et 6 du TP //Gestion de corbeille//, apportez à ''création-ball.sh'' la capacité de traiter un nombre variable de paramètres d'une part, et l'archivage de branches complètes de l'arborescence d'autre part. |
| |
| ==== Q.8 - Splitter "auto-mergeable" (facultatif) ==== |
| |
| Repartez de la solution que vous proposez à l'issue du TP //splitter// pour faire en sortes que : |
| |
| * ''splitter.sh'' génère des blocs << auto-fusionnables >>. Ainsi le premier bloc généré est exécutable, vérifie la présence des autres blocs, et reconstruit - sans nécessité de posséder ''splitter.sh'' - l'ensemble du fichier originel. |
| |
| * Intégrez cette nouvelle fonctionnalité de ''splitter.sh'' à votre archiveur qui en plus de générer des archives auto-désarchivables gère également le partitionnement de ses archives et leur fusion automatique. |