È la barra (/
) fa davvero parte del nome della directory principale di Linux? O è solo un simbolo?
Che dire di /etc
e così via?
Aggiorna
Supponiamo /dev/sda2
è il dispositivo a blocchi di una directory radice di 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
Quindi c'è una directory lì dentro, inode #2, ma non ha un nome.
Risposta accettata:
Lo standard POSIX.1-2008 dice
Un percorso costituito da un singolo /
risolverà nella directory root
del processo. Un percorso nullo non deve essere risolto con successo
.
Lo standard fa inoltre una distinzione tra nomi di file e percorsi . /
è il nome del percorso della directory principale. Il nome della directory è "la directory principale", ma nel filesystem è senza nome, non ha un nome file. Se avesse un nome file, quel nome sarebbe una voce di directory nella directory sopra la directory principale e non esiste tale directory.
Il carattere /
non può mai essere parte di un nome file in quanto è il separatore di percorso.
Per chiarezza:/
non è il nome della directory principale, ma il percorso ad esso, il suo percorso .
/etc
è un altro percorso. È il nome del percorso assoluto di etc
directory. Il nome della directory in quel percorso è etc
(il suo nome file è etc
).
/usr/local/bin/curl
è il percorso del curl
eseguibile allo stesso modo di /etc
è il percorso di etc
directory.