Nom:
| Prénom:
| TP: |
mars 2005
|
Contrôle Système
Le répertoire courant est ICI; il ne doit JAMAIS CHANGER dans
toutes les questions posées; c'est un sous-répertoire de votre
répertoire de référence, qui contient, entre autres, le fichier
tester.cpp, un
sous-répertoire C++, un sous-répertoire INCLUDE.
Le sous-répertoire C++
contient les fichiers horloge.h et horloge.cpp.
La première ligne des fichiers
tester.cpp et horloge.cpp est:
#include "horloge.h"
-
Expliquez l'intérêt de la ligne
alias -x mv="/usr/bin/mv -i"
située dans le fichier /etc/profile.
-
Déplacer tous les fichiers d'en-tête situés dans le père de ICI
et dans le répertoire C++ dans le sous-répertoire INCLUDE.
-
Créer le module exécutable de nom tester, à partir de
tester.cpp et du fichier horloge.cpp.
-
Faire exécuter tester après avoir tapé la ligne:
PATH=/usr/bin
-
Modifier PATH afin de pouvoir exécuter tester si on est dans un
autre sous-répertoire.
On suppose pour la suite que la variable PATH a repris la valeur
qu'elle avait à la connexion
Voici quelques lignes extraites de l'affichage de la commande
ll :
d-wx------- 2 212 200 512 27 fév 14:12 A
dr-x------- 2 212 200 512 27 fév 14:12 B
-rw-------- 1 212 200 1418 27 fév 14:16 tester.cpp
Expliquez le résultat obtenu par chacune des commandes suivantes,
exécutées les unes après les autres.
-
cp tester.cpp A
-
cp tester.cpp B
-
ls A | wc -l
-
ls B | wc -l
Nom:
| Prénom:
| TP: |
mars 2005
|
La commande:
date +%d%m%Y
affiche 12042005
si on est le 12 avril(mois n° 4) 2005
La commande:
touch -t 200503160001 tmp
crée le fichier tmp avec la date du 16 mars (voir
03) 2005, à
00 h, 01 minute, ou modifie sa date s'il existe déjà..
La commande:
find C++   -newer tmp
affiche les noms des fichiers créés ou modifiés après le 16 mars 2005,
0 h, 1 minute en dessous du sous-répertoire C++
-
Indiquez un cas où un message d'erreur peut être affiché par cette
dernière commande (find).
-
Comment peut-on supprimer l'affichage de tous les messages d'erreur?
-
Créer le fichier .dateTemoin dans votre répertoire
de référence, dont la date de création est celle du jour (0 h, 00
minute)
-
Placer dans le fichier de nom duJour, les noms des fichiers non
exécutables, créés dans votre espace de travail le jour même.
Correction
-
Fournit une forme interactive de la commande mv (changement de nom ou
déplacement de fichiers) pour le cas où le nouveau nom correpondrait à
un fichier existant
-
mv ../*.h C++/*.h INCLUDE
-
g++ -o tester -I INCLUDE
tester.cpp C++/horloge.cpp
(précise l'emplacement de horlogne.h, déplacé dans le
sous-répertoire INCLUDE)
-
./tester
(on indique un chemin devant le nom de l'exécutable)
-
PAT=$PATH:~/ICI
(on ajoute ~/ICI à la liste des répertoires parcourus pour trouver
un fichier commande)
-
pas d'affichage; copie dans le sous-répertoire A
-
message d'erreur sur la sortie erreur - à l'écran - car on ne peut pas
écrire dans le sous-répertoire B
-
message d'erreur sur la sortie erreur - à l'écran - car on ne peut pas
lire dans le sous-répertoire A
affichage de 0, nombre de lignes de la sortie standard
-
affichage du nombre de fichiers non cachés, situés dans le sous
répertoire B
-
un message d'erreur apparaît si un sous-répertoire de C++ ne peut être
parcouru (ni droit r, ni droit x)
ou si le fichiet tmp n'existe pas
-
find C++ -newer tmp 2> /dev/null
(rediriger la sortie erreur vers un fichier ou, ici, vers le trou noir)
-
touch -t `date +%Y%m%d`0000 ~/.dateTemoin
l'opérateur `` convertit la sortie standard de la commande date en chaîne de
caractères
-
la commande ci-après affiche tous les fichiers ou répertoires
de l'espace de fichiers de l'utilisateur, pour lesquels il y a un droit d'exécution
:
find ~ \( -perm -100 -o -perm -010 -o -perm -001 \)
Pour obtenir les fichiers (simples), non exécutables, créés le
jour même, on ajoute quelques conditions, puis on place la suite des
noms dans le fichier duJour, du répertoire courant:
find ~ -type f -newer ~/.dateTemoin \
\( -perm -100 -o -perm -010 -o -perm -001 \) > duJour