Vous êtes sur la page 1sur 2

ESME Paris-AB – UNIX

Filipe Vasconcelos Travail Personnel Noté 12 décembre 2022

Avant de commencer (1pt)


Nous allons créer un répertoire de travail pour faciliter le transfert des fichiers.
— Créer votre répertoire de travail que vous nommerez <nom>_tp pour lequel vous rempla-
cerez <nom> par votre nom.
Exemple : mkdir durand_tp
— Changer de répertoire pour pouvoir commencer votre épreuve.
Exemple : cd durand_tp
Remarque : Les indications données tout au long de l’énoncé ne sont pas forcément la seule
et unique façon d’obtenir la solution.

Exercice 1 : Donner les droits d’éxecution (5pt)


Écrire un script nommé cx qui ajoute le droit d’éxécution à un fichier passé en paramètre.

Le script doit renvoyer un message d’erreur si aucun paramètre n’est passé en argument. Si
le paramètre ne correspond pas un fichier, le script devra proposer de le créer.

Sorties attendues :

$ ./cx cx
cx est maintenant executable
$ ./cx toto
le fichier n’existe pas
Souhaitez vous créer le fichier (O/n) ?
toto créé
toto est maintenant executable
$ ./cx
un paramètre est attendu
Usage: ./cx <file>
<file> : nom de fichier

Exercice 2 : Analyser un répertoire (5pt)


Écrire un script nommé analyser qui doit calculer le nombre de fichiers standard, de sous-
répertoires, et d’exécutables d’un répertoire quelconque qui sera donné en paramètre (ou saisis
en cas d’absence du paramètre).
Créer un répertoire pour tester ce script avec le contenu suivant :

rep_exemple/
fichier_std1 (fichier standard)
fichier_std2 (fichier standard)
fichier_exe (fichier executable)
sous_rep1/ (sous répertoire)
sous_rep2/ (sous répertoire)

Sorties attendues :

$ ./analyser rep_exemple
rep_exemple/fichier_exe est un fichier exécutable
rep_exemple/fichier_std1 est un fichier standard
rep_exemple/fichier_std2 est un fichier standard

1
ESME Paris-AB – UNIX
Filipe Vasconcelos Travail Personnel Noté 12 décembre 2022

rep_exemple/sous_rep1 est un sous-répertoire


rep_exemple/sous_rep2 est un sous-répertoire
rep_exemple: dir: 2 file: 2 file_exe: 1
$ ./analyser
Saisir répertoire
>>> rep_exemple
rep_exemple/fichier_exe est un fichier exécutable
rep_exemple/fichier_std1 est un fichier standard
rep_exemple/fichier_std2 est un fichier standard
rep_exemple/sous_rep1 est un sous-répertoire
rep_exemple/sous_rep2 est un sous-répertoire
rep_exemple: dir: 2 file: 2 file_exe: 1

Exercice 3 : Editeur de texte (8pt)


Écrire un script nommé ed qui simule un éditeur de texte ligne par ligne.
Le script prendra un nom de fichier en paramètre. Un prompt >>> sera affiché pour indiquer
à l’utilisateur qu’il peut saisir une ligne. Chacunes des lignes saisies seront ajoutées au fichier et
le fichier devra être affiché dans le terminal. Le programme s’arrête lorsque la saisie est vide.

Indication : Pour permettre à la commande read de lire les espaces dans une seule variable,
on écrasera la variable d’environnement IFS= (Internal Field Separator) avec le caractère vide.

Exemple : IFS=;read -p ">>> " texte


Sorties attendues :

$ ./ed toto
>>> première ligne
première ligne
>>> deuxième ligne
première ligne
deuxième ligne
>>> troisième ligne
première ligne
deuxième ligne
troisième ligne
>>>
$

Pour finir (1pt)


Replacez vous dans le répertoire parent contenant votre répertoire de travail, et générez
une archive de votre répertoire de travail avec la commande tar.
Exemple : $ tar cvzf durand_tp.tgz durand_tp/
Vous téléchargerez votre archive *.tgz avec le lien qui vous sera fourni.

Vous aimerez peut-être aussi