Dosya isimleri bir dosya sisteminde nerede saklanır?


43

Dosya isimleri bir dosya sisteminde nerede saklanır?

İki dosya isminin aynı inode'u gösterebileceği bir linkimiz olduğundan, inode'da veya gerçek dosya içeriğinde değil.


4
Açıkçası, bu tamamen sizin hangi dosya sisteminden bahsettiğinize bağlıdır . Hepsinde inode (hatta dizin) yok.
Michael Borgwardt

NTFS veya FAT12 / 16/32 ve diğer birçok dosya sisteminde herhangi bir inode yoktur
phuclv

Pek çok dosya birden fazla dizinde bir addan daha fazlasına sahiptir. Tür dizininin tüm dosyaları, biri .kendi içinde olmak üzere , en az 2 isme sahiptir .
Stéphane Chazelas

@ LưuVĩnhPhúc, ntfs yapar .. sadece MFT kaydı diyor, ama hemen hemen bir inode.
psusi

Yanıtlar:


60

Uygun bir kopya bulamadım, bu yüzden sorunuza cevap.

Dosya adları ve dizinler

alıntı

Dosya adları ve dizin uygulamaları:

  • inode dosya isimlerini içermez, sadece diğer dosya meta verilerini içerir.
  • Unix dizinleri, her biri bir dosya adı ve bir inode numarası içeren ilişkilendirme yapılarının listesidir.
  • Dosya sistemi sürücüsü, belirli bir dosya adı arayan bir dizinde arama yapmalı ve ardından dosya adını doğru inode numarasına dönüştürmelidir.

Kaynak: Inode'daki Wikipedia sayfası

Böylece dosyanın adı dizinlerin bilgi yapısı içerisinde depolanır. Örneğin:

                         fs ss

Müdürlüğün yapısı

alıntı

EXT2 dosya sisteminde, dizinler, dosya sistemindeki dosyalara erişim yolları oluşturmak ve bunları tutmak için kullanılan özel dosyalardır. Şekil 9.3 bellekteki bir dizin girişinin düzenini göstermektedir.

Bir dizin dosyası, her biri aşağıdaki bilgileri içeren bir dizin girişleri listesidir:

  • inode - Bu dizin girişi için inode. Bu, Blok Grubunun İnode Tablosunda tutulan inode dizisinin bir indeksidir. Şekil 9.3'te, dosya adı verilen dosyanın dizin girişinin i1 inode'una referansı var,
  • isim uzunluğu - Bu dizin girişinin bayt olarak uzunluğu,
  • isim - Bu dizin girişinin ismi.

Her dizinin ilk iki girişi her zaman standart .ve ..sırasıyla "bu dizin" ve "üst dizin" anlamına gelen girdilerdir.

İşte 9.3 Şekil referansları yukarıdaki:

                 ss # 2

Kaynak: Linux Belgelendirme Projesi: Dosya Sistemi

Referanslar


9

Dosya adı ilgili dizinde ("dizin dosyası") saklanır. Bu giriş bir inode'u gösterir.


1
Sembolik bağlantı hedeflerinin dizin girişlerinde nasıl son bulacağını göremiyorum. İşaret bağlantısı hedefi, işaret bağlantısının inodunda bulunabilir, ancak işaret bağlantısının bağlandığı dizin girişinde (hiçbirinde) bulunmayabilir, bu mantıklı olmaz.
Stéphane Chazelas

@ StéphaneChazelas, sembolik bağlantının kendisi basitçe bunun yerine açılması gereken başka bir isim içeriyor. İsim arama, yeni ismin üzerinde tekrar başlar, (eğer varsa) bir yerdeki dizin girişidir.
psusi

1

Dosya adı, "(string) dosyaadı" ve buna karşılık gelen "(int) inode" içeren "dizin" veri yapısında saklanır. dizin dosya adı eşleme sorumludur -> inode. ve in ode diskteki inode -> sektörünü eşlemekten sorumludur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.