Je lomítko (/
) skutečně součástí názvu kořenového adresáře Linuxu? Nebo je to jen jeho symbol?
A co /etc
a tak dále?
Aktualizovat
Předpokládejme /dev/sda2
je blokové zařízení kořenového adresáře Linuxu.
$ 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
Takže tam je adresář, inode #2, ale nemá jméno.
Přijatá odpověď:
Standard POSIX.1-2008 říká
Cesta skládající se z jednoho
/
se přenese do kořenového
adresáře procesu. Nulová cesta nebude úspěšně
vyřešena.
Standard dále rozlišuje mezi názvy souborů a názvy cest . /
je název cesty ke kořenovému adresáři. Název adresáře je „kořenový adresář“, ale v souborovém systému je bezejmenný, nemá název souboru. Pokud by měl název souboru, byl by tento název záznamem adresáře v adresáři nad kořenovým adresářem a žádný takový adresář neexistuje.
Znak /
nemůže být nikdy součástí názvu souboru, protože je to oddělovač cesty.
Pro upřesnění:/
není jméno kořenového adresáře, ale cesta k němu, jeho název cesty .
/etc
je jiná cesta. Je to název absolutní cesty k etc
adresář. Název adresáře na této cestě je etc
(jeho název souboru je etc
).
/usr/local/bin/curl
je cesta ke curl
spustitelný soubor stejným způsobem jako /etc
je cesta k etc
adresář.