Di mana nama file disimpan di sistem file?

44

Di mana nama file disimpan di sistem file?

Itu tidak dalam inode atau dengan konten file yang sebenarnya karena kita memiliki tautan keras bahwa dua nama file dapat menunjuk ke inode yang sama.

yegle
sumber
4
Sebenarnya, itu tergantung sepenuhnya pada yang filesystem Anda berbicara tentang. Tidak semua dari mereka memiliki inode (atau bahkan direktori).
Michael Borgwardt
NTFS atau FAT12 / 16/32 dan banyak sistem file lainnya tidak memiliki inode
phuclv
Banyak file memiliki lebih dari satu nama di lebih dari satu direktori. Semua file direktori jenis memiliki setidaknya 2 nama, satu di antaranya ada .di dalam diri mereka sendiri.
Stéphane Chazelas
@ LưuVĩnhPhúc, ntfs tidak .. itu hanya menyebutnya catatan MFT, tapi itu cukup banyak sebuah inode.
psusi

Jawaban:

61

Saya tidak menemukan duplikat yang cocok jadi inilah jawaban untuk pertanyaan Anda.

Nama file & direktori

kutipan

Nama file dan implikasi direktori:

  • inode tidak mengandung nama file, hanya metadata file lainnya.
  • Direktori Unix adalah daftar struktur asosiasi, yang masing-masing berisi satu nama file dan satu nomor inode.
  • Driver sistem file harus mencari direktori mencari nama file tertentu dan kemudian mengkonversi nama file ke nomor inode yang sesuai.

Sumber: halaman Wikipedia di Inode

Jadi nama file disimpan dalam struktur informasi direktori. Sebagai contoh:

                         ss dari fs

Struktur direktori

kutipan

Dalam sistem file EXT2, direktori adalah file khusus yang digunakan untuk membuat dan menahan jalur akses ke file dalam sistem file. Gambar 9.3 menunjukkan tata letak entri direktori dalam memori.

File direktori adalah daftar entri direktori, masing-masing berisi informasi berikut:

  • inode - Inode untuk entri direktori ini. Ini adalah indeks ke array inode yang disimpan di Tabel Inode dari Grup Blok. Pada Gambar 9.3, entri direktori untuk file bernama file memiliki referensi ke nomor inode i1,
  • panjang nama - Panjang entri direktori ini dalam byte,
  • name - Nama entri direktori ini.

Dua entri pertama untuk setiap direktori selalu merupakan standar .dan ..entri yang berarti "direktori ini" dan "direktori induk" masing-masing.

Berikut referensi Gambar 9.3 di atas:

                 ss # 2

Sumber: Proyek Dokumentasi Linux: Filesystem

Referensi

slm
sumber
9

Nama file disimpan di direktori masing-masing ("file direktori"). Entri ini menunjuk ke sebuah inode.

Hauke ​​Laging
sumber
1
Saya tidak dapat melihat bagaimana target symlink dapat berakhir pada entri direktori. Target symlink dapat ditemukan di inode symlink, tetapi tidak di (salah satu) entri direktori yang terhubung dengan symlink, itu tidak masuk akal.
Stéphane Chazelas
@ StéphaneChazelas, symlink itu sendiri hanya berisi nama lain yang harus dibuka. Pencarian nama dimulai lagi pada nama baru, yang (jika ada sama sekali) adalah entri direktori di suatu tempat.
psusi
1

Nama file disimpan dalam struktur data "direktori" yang memiliki nama file "(string)" dan inode "(int)" yang sesuai. direktori bertanggung jawab untuk memetakan nama file -> inode. dan in ode bertanggung jawab untuk memetakan inode -> sektor pada disk.

Biasanya
sumber