8Sep
Mindannyian a számítógépeink "helyzetén" keresztül járunk, ami teljesen elkápráztatott minket, például egy olyan fájlt, amelynek nagysága nulla, de hogyan lehetséges? A mai SuperUser Q & A bejegyzés válaszol a zavaros olvasói kérdésre.
A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.
Kérdés
SuperUser olvasó Eugene S szeretné tudni, hogy a fájl mérete nulla lehet:
Ez olyan dolog, amellyel befutottam, és nem tudtam elképzelni a megfelelő magyarázatot. Ha az üres *. txt fájlt hoztam létre a számítógépemen, majd megnézem annak méretét, akkor nullát mutat. Hogyan lehetséges ez?Úgy értem, még akkor is, ha maga a fájl üres, még mindig van valamilyen méretű( még ha csak a saját nevét tárolja).Hogyan magyarázható ez?
Hogyan lehet a fájl mérete nulla?
A válasz
SuperUser közreműködők David Schwartz és Cort Ammon válaszolnak nekünk. Először is, David Schwartz:
Lehetséges, mert tényleg nincs fájl. Csak egy könyvtár bejegyzés van, amelynek neve és tulajdonosa. A könyvtárbejegyzés logikailag elkülönül a fájltól. Például ugyanaz a fájl több mint egy nevet tartalmazhat egynél több könyvtárban.
Sajnos a fájlnév nem mindig ugyanazt jelenti. De a fájlméret logikája olyan modellből származik, ahol egy könyvtárbejegyzés egy fájlt egy könyvtárhoz csatol, majd a fájlnevek és a kapcsolódó metaadatok a könyvtárban vannak tárolva.
A Cort Ammon válasza:
A fájlméret szemantikai jelentése eltér az Ön által használt mappától.
Sok olyan fájlméret létezik, amelyek értelmesek. A leggyakoribb, és az itt látható, a fájlban lévő byte-ok száma. Ha a fájl üres szöveges fájl, valójában tartalmazhat nullát. Ez a szám fontos a programozók számára, mert gyakran meg kell nyitnunk egy fájlt, el kell olvasnunk az összes adatot, és be kell zárnunk. Tudnunk kell, hogy hány bájtnyi adat lesz a fájlban, így előre tervezhetünk.
Egy másik jelentés abból áll, hogy a legtöbb fájlrendszer tárolja az adatokat. A legtöbb fájlrendszer blokkokban tárolja az adatokat. Például a fájlrendszer 64 kB-os blokkokban tárolja az adatokat, vagyis soha nem oszt ki semmit, ami nem 64 kB-os. Ez nem hatékony, de a könyvelést meglehetősen egyszerűbbé teheti, és gyakran egyszerűbb a gyorsabb.
A harmadik jelentés, amelyet megragadsz, a merevlemezen lévő bitek tényleges száma lenne a fájl jelenlétének leírására. Ez magában foglalja az általában a fájltól elkülönítve tárolt információkat. Például Linuxban a fájlnév fogalma az inode-ban tárolódik a fájlt tartalmazó könyvtárhoz.[ A többi megjegyzéstől származó bemenet alapján( technikailag) ez a könyvtár adatait tárolja. Amikor ezt írtam, a kiskönyvtárra gondoltam. A 156 bájtnál kisebb adat közvetlenül az inode-ban tárolható.] Ez nem általánosan használt jelentés, mert rettenetesen nehéz meghatározni a fájlrendszer rendkívül mély belső működésének ismeretét( például a fájl összes engedélyének tárolásához szükséges helyet).Ha azonban van egy 1000 000 bájtos merevlemez-meghajtó, és szeretné tudni, hogy egy fájl milyen nagyméretű lehet a merevlemezen, akkor ez nagyon fontos értelme számodra!
Van valami, amit hozzá lehet adni a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.