¿Es la barra inclinada (/
) realmente parte del nombre del directorio raíz de Linux? ¿O es solo un símbolo para ello?
¿Qué pasa con /etc
y así sucesivamente?
Actualizar
Supongamos que /dev/sda2
es el dispositivo de bloque de un directorio raíz de 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
Así que hay un directorio ahí, inodo #2, pero no tiene nombre.
Respuesta aceptada:
El estándar POSIX.1-2008 dice
Un nombre de ruta que consta de un solo /
se resolverá en el directorio raíz
del proceso. Un nombre de ruta nulo no se podrá
resolver con éxito.
El estándar además hace una distinción entre nombres de archivo y nombres de ruta . /
es el nombre de ruta para la ruta del directorio raíz. El nombre del directorio es "el directorio raíz", pero en el sistema de archivos no tiene nombre, no tiene un nombre de archivo. Si tuviera un nombre de archivo, ese nombre sería una entrada de directorio en el directorio sobre el directorio raíz, y no existe tal directorio.
El carácter /
nunca puede ser parte de un nombre de archivo ya que es el separador de ruta.
Para mayor claridad:/
no es el nombre del directorio raíz, pero la ruta a él, su nombre de ruta .
/etc
es otro nombre de ruta. Es el nombre de la ruta absoluta al etc
directorio. El nombre del directorio en esa ruta es etc
(su nombre de archivo es etc
).
/usr/local/bin/curl
es el nombre de ruta del curl
archivo ejecutable de la misma manera que /etc
es el nombre de ruta del etc
directorio.