Saya menemukan bahwa di bawah direktori root saya, ada beberapa direktori yang memiliki nomor inode yang sama:
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
Saya hanya tahu bahwa nama direktori disimpan di direktori induk, dan datanya disimpan di inode direktori itu sendiri.
Saya bingung di sini.
Inilah yang saya pikirkan ketika saya melacak pathname / home / user1.
- Pertama saya masuk ke inode 2 yang merupakan direktori root yang berisi daftar direktori.
- Kemudian saya menemukan nama home paired dengan inode 2.
- Jadi saya kembali ke disk untuk menemukan inode 2?
- Dan saya mendapatkan nama user1 di sini?
linux
filesystems
inode
youxiao
sumber
sumber
Jawaban:
Mereka ada di perangkat yang berbeda.
Jika kita melihat output dari
stat
, kita juga dapat melihat perangkat di mana file itu aktif:Jadi keduanya berada di perangkat / sistem file yang terpisah. Nomor inode hanya unik dalam sistem file sehingga tidak ada yang aneh di sini. Pada ext2 / 3/4 inode 2 juga selalu direktori root , jadi kita tahu mereka adalah root dari sistem file masing-masing.
Kombinasi nomor perangkat + inode cenderung unik di seluruh sistem. (Ada filesystem yang tidak memiliki inode dalam pengertian tradisional, tapi saya pikir mereka masih harus memalsukan semacam pengidentifikasi unik di tempat mereka.)
Nomor perangkat di sana tampaknya sama dengan yang ditunjukkan pada node perangkat, jadi
/dev/sda1
tahan sistem file di mana/
:sumber
Nomor inode dari setiap file yang diberikan adalah unik untuk sistem file, tetapi tidak harus unik untuk semua sistem file yang dipasang pada host yang diberikan. Ketika Anda memiliki banyak filesystem, Anda akan melihat nomor inode duplikat antara filesystem, ini normal.
sumber