La barre oblique (/
) fait-il vraiment partie du nom du répertoire racine Linux ? Ou est-ce juste un symbole ?
Qu'en est-il de /etc
et ainsi de suite ?
Mettre à jour
Supposons /dev/sda2
est le périphérique bloc d'un répertoire racine Linux.
$ sudo debugfs /dev/sda2 debugfs 1.44.1 (24-Mar-2018) debugfs: pwd [pwd] INODE: 2 PATH: / [root] INODE: 2 PATH: / debugfs: stat / Inode: 2 Type: directory Mode: 0755 Flags: 0x80000 Generation: 0 Version: 0x00000000:00000077 User: 0 Group: 0 Project: 0 Size: 4096 File ACL: 0 Links: 25 Blockcount: 8 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x5b13c9f1:3f017990 -- Sun Jun 3 15:28:57 2018 atime: 0x5b13ca0f:3b3ee380 -- Sun Jun 3 15:29:27 2018 mtime: 0x5b13c9f1:3f017990 -- Sun Jun 3 15:28:57 2018 crtime: 0x5aad1843:00000000 -- Sat Mar 17 16:59:39 2018 Size of extra inode fields: 32 EXTENTS: (0):9249
Il y a donc un répertoire là-dedans, inode #2, mais il n'a pas de nom.
Réponse acceptée :
La norme POSIX.1-2008 indique
Un nom de chemin composé d'un seul
/
doit être résolu dans le répertoire racine
du processus. Un nom de chemin nul ne doit pas être
résolu avec succès.
La norme fait en outre une distinction entre les noms de fichiers et chemins . /
est le nom du chemin du répertoire racine. Le nom du répertoire est "le répertoire racine", mais dans le système de fichiers, il est sans nom, il n'a pas de nom de fichier. S'il avait un nom de fichier, ce nom serait une entrée de répertoire dans le répertoire au-dessus du répertoire racine, et un tel répertoire n'existe pas.
Le caractère /
ne peut jamais faire partie d'un nom de fichier car c'est le séparateur de chemin.
Pour plus de clarté :/
n'est pas le nom du répertoire racine, mais le chemin à lui, son nom de chemin .
/etc
est un autre nom de chemin. C'est le nom du chemin absolu vers le etc
annuaire. Le nom du répertoire à ce chemin est etc
(son nom de fichier est etc
).
/usr/local/bin/curl
est le chemin du curl
fichier exécutable de la même manière que /etc
est le chemin du etc
répertoire.