Apakah garis miring (/
) benar-benar bagian dari nama direktori root Linux? Atau hanya simbol untuk itu?
Bagaimana dengan /etc
dan seterusnya?
Perbarui
Misalkan /dev/sda2
adalah perangkat blok direktori root 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
Jadi ada direktori di sana, inode #2, tetapi tidak memiliki nama.
Jawaban yang Diterima:
Standar POSIX.1-2008 mengatakan
Nama path yang terdiri dari satu
/
akan menyelesaikan ke direktori root
proses. Nama path nol tidak akan berhasil
diselesaikan.
Standar selanjutnya membuat perbedaan antara nama file dan nama path . /
adalah nama path untuk path direktori root. Nama direktori adalah "direktori root", tetapi dalam sistem file itu tidak bernama, tidak memiliki nama file. Jika memiliki nama file, nama itu akan menjadi entri direktori di direktori di atas direktori root, dan tidak ada direktori seperti itu.
Karakter /
tidak pernah bisa menjadi bagian dari nama file karena itu adalah pemisah jalur.
Untuk kejelasan:/
bukan nama dari direktori root, tetapi path untuk itu, nama jalur .
/etc
adalah nama jalur lain. Ini adalah nama path absolut ke etc
direktori. Nama direktori di jalur itu adalah etc
(nama filenya adalah etc
).
/usr/local/bin/curl
adalah nama path dari curl
file yang dapat dieksekusi dengan cara yang sama seperti /etc
adalah nama path dari etc
direktori.