Ceci est une ancienne révision du document !
Table des matières
TP 3 : Archivage
Durée
6 heures
Archivage
Le but de ce TP est de développer un outil d'agrégation de plusieurs fichiers sous la forme d'archive. Par ailleurs, les archives que vous aller construire devront être exécutables et auto-désarchivables. Cet archiver sera écrit en bash-script. Vous progresserez par paliers. Vous travaillerez dans un répertoire de votre compte nommé se1/tp2.
Sujet
La redirection “en-place” permet de faire en sorte que le contenu du shell-script en cours d'éxécution devienne l'entrée standard courante d'une commande. La syntaxe à utiliser est la suivante :
commande << TAG_DE_FIN ... ... Ici se trouve l'entrée standard de 'commande' ... ... TAG_DE_FIN
A titre d'exemple, et sachant que wc -l compte le nombre de lignes venant de stdin tapez la commande suivante :
wc -l << TAG_WC l1 : azerty l2 : uiop l3 : qsdfg l4 : hjklm l5 : wxcvv l6 : bn TAG_WC
Vous pouvez renouveller l'expérience avec la commande :
cat << TAG_CAT Ceci est un message TAG_CAT
- En vous basant sur l'exemple précédent, tapez la commande à l'invite shell permettant de créer le fichier
my-id.txtet contenant votre nom, votre prénom ainsi que votre adresse mail. Chacune des informations doit être sur une ligne différente. Vous n'avez donc pas le droit d'utiliser la commandeecho. - Insérez cette commande dans un script-shell nommé
my-ball.sh. Lancezmy-ball.shpour vous assurez de son bon fonctionnement. - Toujours en suivant la même démarche, écrivez un script-shell nommé
create-ball.shqui aura pour objectif de créermy-ball.sh(avec les droits d'exécution adéquat)- Vous venez de créer un script
Aqui génére un scriptB. LorsqueBs'éxécute, il crée à son tour un fichierC.Best donc une archive auto-décompactable.Aest un archiveur. Le fichierCest généré à partir de l'archiveB. A est create-ball.sh, B est my-ball.sh, C est my-id.txt.
- Effacez
my-id.txt. Lancer la commandemy-ball.sh. Elle génèremy-id.txt. Copiezmy-id.txtenmy-id2.txt. Editezmy-id2.txtet ajoutez-y votre date de naissance et votre lieu de naissance. - Modifiez
create-ball.shafin qu'il accepte un nom de fichier en paramètre. L'archivemy-ball.shgénérée aura pour objectif de recréer le fichier passé en paramètre. Vous testerez votre scriptcreate-ball.shavec les fichiersmy-id.txtetmy-id2.txt. Attention à préserver les droits d'accès lors du désarchivage. - Modifiez
create-ball.shafin qu'il admette plusieurs fichiers en paramètre. L'archive crééemy-ball.sh, recréera l'ensemble des fichiers en paramètres lors de son exécution. - Faites en sorte que
create-ball.shsoit en mesure d'archiver (et de désarchiver) des fichiers binaires. - Apportez à votre archiver la fonctionnalité d'archivage d'une branche de l'arborescence