La ligne de commande pour les nuls - partie 2 - (attributs de fichier)
Dans le précédent article, nous avons vu comment se situer dans l'arborescence, et naviguer de répertoires en répertoires. Maintenant, nous allons voir comment lister les fichiers d'un répertoire, et surtout comment interpréter les résultats.
Pour l'exemple, je vais aller dans mon répertoire ~/freeculture
Exemple simpliste
Pour lister le contenu du répertoire, je vais faire utiliser la commande ls.
guillaume@neo ~/freeculture $ ls
et j'obtiens
guillaume@neo ~/freeculture $ ls
articles config.yaml pelican README src
Malheureusement, je ne peux mettre la couleur dans cet exemple. Mais les différentes couleurs indique s'il s'agit d'un simple fichier, un dossier ou un répertoire.
Exemple plus complet
Nous allons essayer d'en savoir plus avec ls -l
total 12 lrwxrwxrwx 1 guillaume guillaume 41 21 janv. 15:17 articles -> /home/guillaume/Sauvegarde/blog/articles/ -rw-r--r-- 1 guillaume guillaume 76 2 déc. 02:08 config.yaml lrwxrwxrwx 1 guillaume guillaume 38 21 janv. 15:14 pelican -> /home/guillaume/Programmation/pelican/ -rw-r--r-- 1 guillaume guillaume 179 2 déc. 02:08 README drwxr-xr-x 3 guillaume guillaume 4096 2 déc. 02:08 src
Bon, ça commence à devenir barbare pour certains. On va commencer par la ligne la plus simple :
-rw-r--r-- 1 guillaume guillaume 179 2 déc. 02:08 README
et la décomposer en 7 parties :
- -rw-r--r--
- Nous donne deux informations, le type de fichier et les permissions d'accès.
- 1
- Indique le nombre de liens physiques. Pour un fichier standart, il est à 1. Une valeur de trois pour un dossier indique une profondeur de trois répertoires.
- guillaume
- Nom du propriétaire du fichier
- guillaume
- Nom du groupe du fichier
- 179
- Taille du fichier en octets
- 2 déc. 02:08
- Date de dernière modification du fichier
- README
- Nom du fichier
Les permissions d'accès
Ça demande un peu plus d'explication. Il faut commencer par découper la ligne -rw-r--r-- en quatre parties :
- / rw- / r-- / r--
- La première partie indique le type de fichier. - pour un fichier standart, d pour un répertoire -- directory, l pour un lien ;
- La seconde indique les droits de l'utilisateur, ici guillaume ;
- La troisième, les droits des utilisateurs du groupe, c'est à dire les utilisateurs étant dans le groupe guillaume ;
- La quatrième, les droits des autres utilisateurs, c'est à dire ni guillaume, ni ceux qui appartiennent au groupe guillaume.
Les droits utilisateurs
Ils sont au nombre de trois :
- r pour lecture -- read ;
- w pour écriture -- write ;
- x pour eXecution ;
et sont toujours dans cet ordre rwx. Si vous avez un tiret au lieu de la lettre, vous n'avez pas le droit en question.
Reprenons donc notre exemple du fichier README -rw-r--r--. Ce fichier est donc un fichier standart lisible et modifiable par moi même, et uniquement lisible pour les personne de mon groupe et ceux n'appartenant pas à mon groupe.
Cas du dossier src
Allez on reprend la ligne en question :
drwxr-xr-- 3 guillaume guillaume 4096 21 janv. 15:39 src
src est bien un répertoire (d), lisible, modifiable et executable par guillaume, lisible et executable pour les autres membres du groupe guillaume, et seulement lisible pous les autres.
Qu'est ce que l'éxécution d'un répertoire ? C'est la possibilité de rentrer dedans tout simplement. Un utilisateur n'appartenant pas à on groupe tentant de faire un cd src se verrai afficher ce message :
bash: cd: src/: Permission non accordée
Si par contre, les autres utilisateurs avaient la permission --x il pourraient rentrer dans le répertoire, mais un ls -l leur renverrait ce message :
ls: impoossible d'ouvrir le répertoire .: Permission non accordée
Cas du lien article
lrwxrwxrwx 1 guillaume guillaume 41 21 janv. 15:17 articles -> /home/guillaume/Sauvegarde/blog/articles/
Le l indique qu'il s'agit d'un lien. C'est a dire que le dossier articles vous emmenera dans le dossier /home/guillaume/Sauvegarde/blog/articles/ tout en restant dans ~/freeculture. Pratique si pour certaines raisons vous avez des fichiers un peu partout. Dans mon cas, le répertoire ~/Sauvegarde correspond à la sauvegarde quotidienne de mon serveur.
Comment savoir si le lien est un répertoire ou un fichier ? C'est très simple en fait. Si le lien fini par /, c'est un répertoire, autrement c'est un fichier.
Conclusion
Faire le point sur les attributs de fichiers me parraissait indispensable pour ne pas être perdu. Je vous parlerai des autres options de ls dans un autre article car certaines peuvent être intéressantes.