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.txt
et 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.sh
pour vous assurez de son bon fonctionnement. - Toujours en suivant la même démarche, écrivez un script-shell nommé
create-ball.sh
qui aura pour objectif de créermy-ball.sh
(avec les droits d'exécution adéquat)- Vous venez de créer un script
A
qui génére un scriptB
. LorsqueB
s'éxécute, il crée à son tour un fichierC
.B
est donc une archive auto-décompactable.A
est un archiveur. Le fichierC
est 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.txt
enmy-id2.txt
. Editezmy-id2.txt
et ajoutez-y votre date de naissance et votre lieu de naissance. - Modifiez
create-ball.sh
afin qu'il accepte un nom de fichier en paramètre. L'archivemy-ball.sh
générée aura pour objectif de recréer le fichier passé en paramètre. Vous testerez votre scriptcreate-ball.sh
avec les fichiersmy-id.txt
etmy-id2.txt
. Attention à préserver les droits d'accès lors du désarchivage. - Modifiez
create-ball.sh
afin 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.sh
soit en mesure d'archiver (et de désarchiver) des fichiers binaires. - Apportez à votre archiver la fonctionnalité d'archivage d'une branche de l'arborescence