Acte V-II :
Organisation des données - une première approche
Différents types de fichiers
- Les fichiers de données: ils peuvent contenir des textes en
clair (courriers, texte source des programmes, etc...) ou encore un
programme exécutable.
- Les répertoires: Ils permettent d'organiser l'espace du disque
dur. Ils contiendront des fichiers de données, des fichiers
spéciaux ou encore des sous-répertoires. On obtient ainsi une
structure hiérarchique.
- Les fichiers spéciaux /dev/: Ils permettent de gérer les
périphériques (comme par exemple une imprimante).
Structure arborescente de données
On peut comparer les répertoires
à des boîtes dans lesquelles on peut classer des objets, c'est-à-dire
les fichiers, et aussi y stocker d'autres boîtes dans lesquelles
sont classés d'autres objets. Cette représentation de
l'arborescence nous montre que, pour retrouver un fichier, il est
nécessaire de connaître son chemin d'accès. Ce
chemin d'accès part du répertoire racine et parcourt les
ramifications des divers répertoires et classeurs.
Exemple d'arborescence sous Unix:
Noms de fichiers
Tous les noms de fichiers sont soumis aux mêmes règles. Il faut
respecter les contraintes suivantes:
- Ne pas dépasser 14 caractères pour des raisons de
compatibilité avec d'anciens systèmes UNIX;
- Un nom se compose de majuscules, de minuscules et de chiffres
(éviter les trémas);
- Il peut aussi contenir le caractère souligné "_", le point
"." ou encore le signe plus "+".
Noms de chemins
- Nom de chemin absolu
Unix doit pouvoir différencier un fichier sur la base d'un nom. Pour
cela, on ne peut se contenter du nom du fichier. En effet, on peut
tout à fait dans deux répertoires différents avoir deux fichiers
qui portent le même nom, sans pourtant que ce soit les
mêmes. C'est pourquoi on complètera le nom du fichier par son chemin
d'accès. En partant du répertoire racine / le
chemin d'accès est la suite des noms des sous-répertoires parcourus
séparés par un / jusqu'à arriver au répertoire
contenant le fichier recherché. Par exemple, le nom de chemin absolu
du fichier entouré est /users/jean/essai.c.
- Nom de chemin relatif
On peut aussi accéder à un fichier en donnant son chemin par
rapport au répertoire courant. Par exemple, je suis dans le
répertoire /users/jean en absolu et je
cherche à nommer le fichier entouré. Il suffit alors d'écrire
essai.c. On pourrait aussi écrire
../jean/essai.c. Le terme .. désigne le répertoire juste au dessus du répertoire
courant (son répertoire "père"), le répertore père de lq racine étant
elle-même. Le terme . indique le
répertoire courant et le terme ~ le
répertoire de login.
Dans toutes les commandes que nous allons voir, les références des
fichiers (et donc des répertoires) pourront être données en chemin
absolu ou relatif.
Se déplacer dans l'arborescence
- La commande ls
Elle permet de donner la liste des fichiers et répertoires du
répertoire courant ne commençant pas par ``.''. Par défaut, il n'y
a aucune distinction entre les fichiers et les répertoires.
Pour cela, l'option -F c'est
à dire ls -F met un slash derrière les noms de
répertoire.
ls -a permet de lister tous les fichiers et répertoires y
compris ceux commençant par ``.''.
- La commande pwd
Cette commande permet de savoir le nom absolu du répertoire courant.
- La commande cd
Cette commande permet de changer de répertoire courant.
cd nom_de_repertoire change le répertoire courant
en nom_de_repertoire si
nom_de_repertoire est le nom de chemin absolu d'un répertoire
existant, ou si c'est le nom de chemin relatif d'un sous-répertoire du
répertoire courant.
cd .. va au
répertoire père du répertoire courant.
cd va dans le répertoire de login.
Créer et effacer un répertoire
La commande mkdir nom permet de créer un répertoire de nom
nom.
La commande rmdir nom permet d'effacer le répertoire nom nom si celui-ci est vide.
Copier, renommer, effacer des fichiers
La commande cp nom1
nom2 permet de copier le fichier de nom nom1 en fichier de nom nom2.
La commande rm nom permet d'effacer le fichier de nom nom.
La commande mv nom1
nom2 permet de renommer le fichier de nom1 en nom2.
Exercices d'application - théorie
Validité de noms de fichiers
Déterminer si les noms suivants sont des noms valables ou alors des noms litigieux de fichiers Unix:
- .tcshr ;
- BonJour ;
- toto&tutu ;
- essai.tex ;
- Recherche Internet ;
- MATHEMATIQUES ;
- aujourd'hui ;
- Sujet_de_projet ;
- Joke.GIF ;
- $56dessin ;
- 34+45.23 ;
Chemin d'accès absolu
à partir de l'exemple d'arborescence de données, donner les chemins
d'accès absolus des fichiers suivants:
- essai.c (donner les deux chemins)
- pwd
- td1.tex
- td1.c
Chemin d'accès relatif
Toujours à partir de l'arborescence de données, donner le chemin d'accès
relatif du fichier (abrégé par F) par rapport au répertoire courant (RC):
- F: pwd , RC: /users/jean/programmes/
- F: essai.c (entouré) , RC: /users/pierre
- F: td1.c , RC: /etc/
- F: td1.tex , RC: /users/pierre/
- F: essai.c (entouré) , RC: /bin/
- F: essai.c (non entouré) , RC: /
Manipulation de fichiers
Donner les commandes qui permettent de:
- copier le fichier pwd dans le répertoire programme/ à partir de /
- déplacer td1.tex dans jean/ à partir de /bin/
- changer de nom essai.c (entouré) en definitf.c à partir de users/
- effacer td1.c à partir de pierre/
- echanger les deux fichiers essai.c à partir de jean/
Manipulation de répertoires
Donner les commandes qui permettent de:
- effacer le répertoire programmes/ à partir de /
- créer un répertoire examen/ dans cours/ à partir de /
- effacer le répertoire cours/, quel que soit le répertoire courant
Exercices d'application - pratique
Les répertoires
- Créez tout d'abord un répertoire Stage_Unix dans votre répertoire
de login
- en restant dans le répertoire de login, créez, dans le
répertoire Stage_Unix/, un répertoire Exercice/
- placez-vous dans le répertoire Exercice/
- dans le répertoire Exercice/, créez un répertoire TD/
- en restant dans Exercice/, créez un répertoire C/ et un
répertoire Java/ dans le répertoire Stage_Unix/
- placez-vous dans le répertoire Java et affichez tout ce qu'il
contient en distinguant les fichiers des répertoires (il devrait contenir
deux répertoires)
- placez-vous dans le deuxième de ces deux répertoires et déterminer
le répertoire courant
- replacez-vous dans le répertoire Java, puis allez dans le premier des
deux répertoires de la liste établie précédemment
- déterminez le répertoire courant
- revenez directement dans votre répertoire de login
- de là, effacez le répertoire Java/
- sans quittez votre répertoire de login, dessinez l'arborescence
de votre compte
Les fichiers
- Placez-vous dans le répertoire ~stage60/ et essayez de
déplacer le fichier TP1 dans le répertoire Stage_Unix/. Vous
remarquez que vous ne pouvez pas
- faites une copie de ce fichier dans votre répertoire Stage_Unix/Exercice/
- revenez dans le répertoire Stage_Unix/ et renommez le fichier
TP1 en MonTP1
- Déplacez MonTP1 dans le répertoire TD/ (tout en restant dans Stage_Unix/)
- Déplacez le répertoire TD dans votre répertoire courant
- Nouvelle option concernant ls : -R ou encore --recusive.
Cette option permet d'affichez le contenu d'un répertoire et de tous ses
sous-répertoires, de façon récursive.
Affichez le contenu du répertoire Stage_Unix et de tous ses
sous-répertoires
- renommez le répertoire TD en TP
- faites une copie de MonTP1 dans Stage_Unix/
- effacez TP1 de votre répertoire Exercice/ en restant dans votre
répertoire courant
- effacez le répertoire TP