Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 :
Vous vous trouvez actuellement dans votre répertoire de connexion (HOME).
1. Créer un répertoire nommé "Exo1" dans votre répertoire de connexion.
2. En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont le
nom commence par std. (Le répertoire /usr/include contient les fichiers d’entête standards
en langage C (stdlib.h, ...)).
3. Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
4. Modifier la commande de la question précédente pour qu’au lieu d’afficher le résultat, celui-ci
soit placé dans un fichier nommé List de votre répertoire de connexion.
5. Copier avec la commande "cat" le contenu de fichier List dans un nouveau fichier nommé
Copie.
6. Toujours avec cat, créer un nouveau fichier nommé Double formé par la mise bout à bout
(concaténation) des fichiers List et Copie.
7. Vérifier le nombre de lignes de fichier Double.
8. En une seule ligne, faire afficher le nombre de fichiers qui se teminent par ".h" de /usr/include.
9. Afficher la liste des répertoires plus vieux que 3 jours situés sous votre répertoire de
connexion.
Correction :
find $HOME -ctime +3 type d
3. Si l’utilisateur entre une réponse qui n’est pas o ou n, la question lui soit reposée, jusqu’à
ce que sa réponse soit valide.
Correction :
# ! / bin / bash
if [ " $ # " - ne 2 ] ; then
echo " usage : $0 SOURCE DESTINATION " >&2
exit 1
fi
src = $1
dest = $2
Exercice 3 : Ranger
Le but de cet exercice est de construire pas à pas un script ranger qui range les fichiers
passés en arguments dans les sous-répertoires images, documents ou videos du répertoire
de travail selon le principe suivant :
— les fichiers dont l’extension est .pdf sont rangés (déplacés) dans documents ;
— les fichiers dont l’extension est .png ou .gif sont rangés dans images ;
— les fichiers dont l’extension est .avi ou .mov sont rangés dans videos.
Correction : Correction à la fin de l’exercice.
1. Écrire le script ranger qui accepte un nombre quelconque d’arguments.
2. Vérification des répertoires cible : Si l’un de répertoires documents, images ou videos
n’existe pas dans le répertoire personnel, il soit créé.
3. Vérification des répertoires cible (bis) : si un fichier documents, images ou videos existe
déjà dans le répertoire personnel mais :
— n’est pas un répertoire, ou bien
— est un répertoire qui n’a pas les permissions suffisantes pour y déplacer des fichiers (à
vous de dire lesquelles)
alors le script affiche un message d’erreur, puis sort avec un code d’erreur approprié.
Correction :
# ! / bin / bash
for rep in " $rep_img " " $rep_vid " " $rep_doc " ; do
if ! [ -e " $rep " ] ; then
mkdir " $rep "
elif ! [ -d " $rep " ] ; then
echo " Le fichier $rep existe mais n ' est pas un r é pertoire ! " ←-
>&2
exit 2
elif ! [ -x " $rep " ] || ! [ -w " $rep " ] ; then
echo " Le r é pertoire $rep existe mais " \
" il n ' a pas les permissions suffisantes " >&2
exit 3
fi
done