Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [22/03/2015 09:47] enicar [Liens et inodes] |
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [26/03/2015 07:27] enicar [Les répertoires] |
||
---|---|---|---|
Ligne 347: | Ligne 347: | ||
===== Les répertoires ===== | ===== Les répertoires ===== | ||
- | FIXME À SUIVRE... | + | Les répertoires sont des fichiers avec l'attribut « répertoire » ((Presque tout est fichier dans un |
+ | système linux. Il existe une exception notable : les interfaces réseaux. En effet ces interfaces | ||
+ | n'ont aucun périphérique correspondant dans /dev/)) | ||
+ | |||
+ | Les répertoires permettent de faire la correspondance entre les noms des fichiers et les inodes. | ||
+ | Les répertoires ont eux mêmes un nom dans un répertoire, à l'exception du répertoire racine | ||
+ | qui n'a pas de nom. | ||
+ | |||
+ | Nous allons voir que les répertoires sont aussi des liens sur des inodes, et qu'un répertoire | ||
+ | possède d'office plusieurs liens physiques (à par la racine, mais ça ne dure pas longtemps ;-)). | ||
+ | Donc, voyons le nombre de liens d'un répertoire. Pour cela nous allons utiliser, l'option | ||
+ | **-d** de **ls**, par exemple ((Nous pouvons grouper les options courtes dans ls. Ainsi **ls -ld** est équivalent à **ls -l -d**)): | ||
+ | <code user> | ||
+ | ls -ld . | ||
+ | </code> | ||
+ | Cela donne dans mon home : | ||
+ | <file -> | ||
+ | drwxr-xr-x 246 enicar enicar 36864 mars 26 06:42 . | ||
+ | </file> | ||
+ | Nous voyons que le répertoire courant a bien l'attribut répertoire (ouf !). Le nombre de | ||
+ | liens est 246, et sa taille 36864 octets. | ||
+ | |||
+ | |||
+ | Le nombre de liens d'un répertoire est au moins deux ((sauf pour la racine, mais je n'y reviendrai plus ;) )). En effet, le premier lien est celui du répertoire parent. Le second est celui qu'il a sur lui | ||
+ | même, c'est le point. Alors nous en arrivons à la question : d'où vient ce 246 ? À chaque nouveau | ||
+ | sous-répertoire créé dans un répertoire est associé un lien noté **..**. Ce lien pointe sur le répertoire parent. Donc on en déduit, qu'il y a 244 sous-répertoires dans le répertoire courant de mon exemple. | ||
+ | Prouvons le ! Je vais utiliser pour ce faire les commandes **find** et **wc**. **find** permet de chercher des fichiers selon divers critères. Ici, je vais lui demander de trouver les répertoires | ||
+ | du répertoire courant (**-type d**) et de ne pas parcourir ces sous-répertoires en profondeur | ||
+ | comme il le fait normalement (**-maxdepth 1**). **wc** compte les caractères, les mots et les lignes. | ||
+ | Ici, je lui demande de compter les lignes uniquement (**-l**) | ||
+ | <code user> | ||
+ | find . -maxdepth 0 -type d |wc -l | ||
+ | </code> | ||
+ | **find** permet de chercher des fichiers selon divers critères. Ici, je vais lui demander de trouver les répertoires du répertoire courant (**-type d**) et de ne pas parcourir ces sous-répertoires en profondeur | ||
+ | comme il le fait normalement (**-maxdepth 1**). **wc** compte les caractères, les mots et les lignes. | ||
+ | Ici, je lui demande de compter les lignes uniquement (**-l**). En effet, par défaut, **find** affiche un fichier par ligne. Mais surprise ! Cela affiche : | ||
+ | <file -> | ||
+ | 245 | ||
+ | </file> | ||
+ | Me serais-je fourvoyer ? Non, du tout ! En fait, avec **find** nous avons aussi compté le répertoire | ||
+ | courant (c'est à dire **.**). Vous pouvez le vérifier en faisant : | ||
+ | <code user> | ||
+ | find . -maxdepth 1 -type d |less | ||
+ | </code> | ||
+ | Le répertoire **.** devrait être listé au début. |