logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:23]
enicar
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [30/06/2019 12:19]
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 140: Ligne 143:
 se nomment de la même façon, sont deux choses différentes. se nomment de la même façon, sont deux choses différentes.
  
-Les groupes sont souvent utilisés pour gérer les droits plus finement ou pour réunir un ensemble d'utilisateur+Les groupes sont souvent utilisés pour gérer les droits plus finement ou pour réunir un ensemble d'utilisateurs
 sur les systèmes qui sont vraiment utilisés par plusieurs personnes. sur les systèmes qui sont vraiment utilisés par plusieurs personnes.
  
Ligne 164: Ligne 167:
   * Date de dernière modification (mtime)   * Date de dernière modification (mtime)
   * Date de dernier changement des droits (ctime)   * Date de dernier changement des droits (ctime)
-J'ai écrit entre parenthèses l’abréviation qui est employé ​pour chacune.+J'ai écrit entre parenthèses l’abréviation qui est employée ​pour chacune.
 On peut afficher ces trois dates à l'aide de la commande « **stat** » : On peut afficher ces trois dates à l'aide de la commande « **stat** » :
 <code user> <code user>
Ligne 182: Ligne 185:
 les données du fichier. La date de dernier changement indique la date dernier changement des méta données concernant le fichier (c'est à dire, les informations,​ comme sa taille, son propriétaire,​ son groupe, ses droits, son nombre de liens,​…)FIXME. La date de dernier accès est changé lors d'un accès en lecture et aussi quand l'une des dates de modification ou de changement est changée. FIXME les données du fichier. La date de dernier changement indique la date dernier changement des méta données concernant le fichier (c'est à dire, les informations,​ comme sa taille, son propriétaire,​ son groupe, ses droits, son nombre de liens,​…)FIXME. La date de dernier accès est changé lors d'un accès en lecture et aussi quand l'une des dates de modification ou de changement est changée. FIXME
  
-On peut obtenir les dates de derniers ​accès et de dernier changement avec « **ls -l** ». Une option +On peut obtenir les dates de dernier ​accès et de dernier changement avec « **ls -l** ». Une option 
-longue de la forme « **--time=//​mode//​** » permet de choisir quelle date affichée. Des options+longue de la forme « **--time=//​mode//​** » permet de choisir quelle date afficher. Des options
 courtes sont aussi disponibles : courtes sont aussi disponibles :
 ^//​mode//​^option courte^affichage^ ^//​mode//​^option courte^affichage^
 |atime, access ou use|-u|date de dernier accès| |atime, access ou use|-u|date de dernier accès|
 |ctime ou status|-c|date de dernier changement| |ctime ou status|-c|date de dernier changement|
 +| |-t|date de dernière modification|
 +
 +De plus, les options courtes trient selon la date sélectionnée.
  
 ===== Nom du fichier ===== ===== Nom du fichier =====
Ligne 207: Ligne 213:
  
 Les données d'un fichier sont écrites sur le disque sous forme de blocs. Les données d'un fichier sont écrites sur le disque sous forme de blocs.
-L'​information où se trouve ces blocs, est contenu ​dans un ensemble +L'​information où se trouve ces blocs, est contenue ​dans un ensemble 
-d'​inodes (sous forme de numéro ​de bloc).+d'​inodes (sous forme de numéros ​de blocs).
  
  
 <​note>​ inode peut être traduit par i-nœud, c'est à dire nœud <​note>​ inode peut être traduit par i-nœud, c'est à dire nœud
-d'​information. J'ai préféré ​gardé ​le terme employé couramment par les+d'​information. J'ai préféré ​garder ​le terme employé couramment par les
 initiés. initiés.
 </​note>​ </​note>​
Ligne 219: Ligne 225:
 Cet ensemble d'​inodes a un premier inode qui sert à référencer le fichier. Cet ensemble d'​inodes a un premier inode qui sert à référencer le fichier.
 Un répertoire fait correspondre un chemin (le nom du fichier) avec ce Un répertoire fait correspondre un chemin (le nom du fichier) avec ce
-premier inode. ​ De cet façon on peut avoir plusieurs noms pour le même+premier inode. ​ De cette façon on peut avoir plusieurs noms pour le même
 fichier. Ces différents noms pointent sur le même premier inode. fichier. Ces différents noms pointent sur le même premier inode.
  
Ligne 230: Ligne 236:
 Le premier inode contient aussi les métadonnées associées au fichier. Le premier inode contient aussi les métadonnées associées au fichier.
 C'est à dire, sa taille, son propriétaire,​ son groupe, les dates de C'est à dire, sa taille, son propriétaire,​ son groupe, les dates de
-derniers changements,​ accès et modification, le nombre de lien et les+derniers changements,​ accès et modifications, le nombre de lien et les
 permissions. permissions.
  
  
-Supposons à présent, que l'​on ​est deux noms de fichiers qui pointent sur+Supposons à présent, que l'​on ​ait deux noms de fichiers qui pointent sur
 le même inode. Donc, les données des « deux fichiers » sur le disque le même inode. Donc, les données des « deux fichiers » sur le disque
 sont au même endroit. Et donc ils ont exactement les mêmes données. Leur  sont au même endroit. Et donc ils ont exactement les mêmes données. Leur 
Ligne 242: Ligne 248:
  
  
-Nous allons faire quelques ​expérience pratique ​pour démontrer ce fonctionnement.+Nous allons faire quelques ​expériences pratiques ​pour démontrer ce fonctionnement.
 J'ai dit plus [[peregrination-autour-de-ls-l?&#​la-sortie-de-ls--l|haut]] que l'​option **-i** permettait de J'ai dit plus [[peregrination-autour-de-ls-l?&#​la-sortie-de-ls--l|haut]] que l'​option **-i** permettait de
 connaître le numéro d'​inode. C'est cette option que nous allons utiliser. connaître le numéro d'​inode. C'est cette option que nous allons utiliser.
Ligne 252: Ligne 258:
 </​code>​ </​code>​
  
-Vous devriez, à présent, vous trouvez ​dans le répertoire **essai-de-liens**. +Vous devriez, à présent, vous trouver ​dans le répertoire **essai-de-liens**. 
-Créons un nouveau fichier que nous allons ​appelé ​**machin**+Créons un nouveau fichier que nous allons ​appeler ​**machin**
 <code user> <code user>
 touch machin touch machin
Ligne 264: Ligne 270:
 -rw-r--r-- 1 enicar enicar 0 mars  21 17:02 machin -rw-r--r-- 1 enicar enicar 0 mars  21 17:02 machin
 </​file>​ </​file>​
-Donc le fichier existe, sa taille est nulle et son compteur de lien est &​gale ​à 1.+Donc le fichier existe, sa taille est nulle et son compteur de lien est égale ​à 1.
 Bien, on va créer un lien sur **machin** avec la commande **ln** : Bien, on va créer un lien sur **machin** avec la commande **ln** :
 <code user> <code user>
 ln machin bidule ln machin bidule
 </​code>​ </​code>​
-Regardons les numéros d'inode de nos deux fichiers :+Regardons les numéros d'inodes ​de nos deux fichiers :
 <code user> <code user>
 ls -i machin bidule ls -i machin bidule
Ligne 295: Ligne 301:
 </​file>​ </​file>​
 Voilà ! En modifiant, les données de **machin** nous avons modifié celle de **bidule**, car les deux Voilà ! En modifiant, les données de **machin** nous avons modifié celle de **bidule**, car les deux
-fichiers ont les mêmes données sur le disque. Tenez, regardons le compteur de lien de nos deux fichiers :+fichiers ont les mêmes données sur le disque. Tenez, regardons le compteur de liens de nos deux fichiers :
 <code user> <code user>
 ls -l bidule machin ls -l bidule machin
Ligne 303: Ligne 309:
 -rw-r--r-- 2 enicar enicar 15 mars  21 17:11 machin -rw-r--r-- 2 enicar enicar 15 mars  21 17:11 machin
 </​file>​ </​file>​
-Oh ! Le compteur de lien de machin a été incrémenté de 1, celui de bidule est aussi de 2 !+Oh ! Le compteur de lien de **machin** a été incrémenté de 1, celui de bidule est aussi de 2 !
 On va aller plus loin, grâce à la commande **stat** : On va aller plus loin, grâce à la commande **stat** :
 <code user> <code user>
Ligne 326: Ligne 332:
   Créé : -   Créé : -
 </​file>​ </​file>​
-Vous pouvez vérifier que pour **bidule** et **machin** les dates de dernier ​accès sont les mêmes. Il en +Vous pouvez vérifier que pour **bidule** et **machin** les dates de derniers ​accès sont les mêmes. Il en 
-est de même pour les dates de changement ​et dernière ​modification. Les deux fichiers sont indiscernables,​+est de même pour les dates de changements ​et dernière ​modifications. Les deux fichiers sont indiscernables,​
 tant au niveau de leur données que de leurs métadonnées. tant au niveau de leur données que de leurs métadonnées.
  
Ligne 344: Ligne 350:
  
 ===== 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 : 
 +<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. 

Pied de page des forums

Propulsé par FluxBB