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 [26/03/2015 06:53] enicar [Les répertoires] |
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [30/06/2019 12:18] enicar [Les liens symboliques] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : Cet article n'a qu'un seul but, apprendre | * Commentaires : Cet article n'a qu'un seul but, apprendre | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * [[doc:systeme:ls|commande ls]] | + | * [[doc:systeme:ls|commande ls]] : lister les fichiers. |
- | * [[doc:systeme:ln|commande ln]] | + | * [[doc:systeme:ln|commande ln]] : faire des liens. |
- | * [[doc:systeme:droits-unix|droit unix]] | + | * [[doc:systeme:droits-unix|les droits unix]]. |
- | * [[doc:systeme:chmod|commande chmod]] | + | * [[doc:systeme:chmod|commande chmod]] : changer les permissions d'un fichier. |
- | * [[doc:systeme:chown|commande chown]] | + | * [[doc:systeme:chown|commande chown]] : changer le propriétaire et le groupe d'un fichier. |
- | * [[doc:systeme:touch|commande touch]] | + | * [[doc:systeme:touch|commande touch]] : changer les horodatage d'un fichier. |
+ | * [[doc:systeme:find|commande find]] : chercher des fichiers selon plusieurs critères. | ||
+ | * [[doc:systeme:wc|commande wc]] : compter le nombre de caractères, de mots et de lignes. | ||
+ | * [[doc:editeurs:less|commande less]] : visualiser un fichier texte. | ||
===== Introduction ===== | ===== Introduction ===== | ||
Ligne 66: | Ligne 69: | ||
|-|Fichier normal| | |-|Fichier normal| | ||
|d|Répertoire (**d**irectory) ([[peregrination-autour-de-ls-l?&#les-repertoires|Les répertoires]])| | |d|Répertoire (**d**irectory) ([[peregrination-autour-de-ls-l?&#les-repertoires|Les répertoires]])| | ||
- | |l|Lien symbolique (symbolic **l**ink)| | + | |l|Lien symbolique (symbolic **l**ink) ([[peregrination-autour-de-ls-l?&#les-liens-symboliques|Les liens symboliques)]]| |
|p|Tube nommé (**p**ipe)| | |p|Tube nommé (**p**ipe)| | ||
|s|**S**ocket unix| | |s|**S**ocket unix| | ||
Ligne 124: | Ligne 127: | ||
Dans linux, ce bit **t** n'est utilisé que pour les répertoires. Il est utilisé notamment pour | Dans linux, ce bit **t** n'est utilisé que pour les répertoires. Il est utilisé notamment pour | ||
- | les répertoires temporaires, par exemple : | + | les répertoires temporaires, par exemple ((L'option **-d** demande à **ls** de ne pas afficher le contenu des répertoires, mais de lister leur nom comme avec les autres fichiers))((Nous pouvons grouper les options courtes dans ls. Ainsi **ls -ld** est équivalent à **ls -l -d**)) : |
<code user> | <code user> | ||
ls -ld /tmp | ls -ld /tmp | ||
Ligne 356: | Ligne 359: | ||
Nous allons voir que les répertoires sont aussi des liens sur des inodes, et qu'un répertoire | 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 ;)). | + | 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 : | ||
+ | <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**. | ||
+ | <code user> | ||
+ | find . -maxdepth 1 -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, pas 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. Une autre façon de voir, est que **find** liste tous les répertoires du répertoires courant sauf **..**, ça nous fait 246-1. ;-) Le compte est bon ! | ||
+ | |||
+ | ===== Les liens symboliques ===== | ||
+ | FIXME à suivre. | ||
- | FIXME À SUIVRE... | + | <key>C-c</key> |