Hogyan lehet a fájl mérete nulla?
Mindannyian időnként áthaladunk egy "helyzeten" a számítógépünkön, ami teljesen zavarba ejt minket, mint például egy fájl, amelynek mérete nulla, de hogyan lehet ez még? A mai SuperUser Q&A postai válaszok egy zavaros olvasó kérdésére vonatkoznak.
A mai Kérdések és válaszok munkamenet a Jóvagyon - a Stack Exchange alosztályának, a közösség által vezérelt Q&A webhelyek csoportjának köszönhetően..
A kérdés
Az Eugene S SuperUser olvasó tudni akarja, hogy a fájl mérete nulla lehet:
Ez valami, amit behatoltam és nem tudtam egy megfelelő magyarázatot. Ha üreset hozok létre * .txt fájl a számítógépen, majd megnézem a méretét, nulla mérete látható. Hogyan lehetséges ez? Úgy értem, még akkor is, ha maga a fájl üres, még mindig van egy bizonyos méretű (még ha csak a saját nevének tárolására van szükség). Hogyan lehet ezt megmagyarázni?
Hogyan lehetséges, hogy egy fájl nulla legyen?
A válasz
A SuperUser közreműködők David Schwartz és Cort Ammon válaszolnak számunkra. Először David Schwartz:
Lehetséges, mert valójában nincs fájl. Csak egy címtárbejegyzés van, amelynek neve és tulajdonosa van. A könyvtárbejegyzés logikailag különbözik a fájltól. Például ugyanazt a fájlt több névvel is lehet több könyvtárban.
Sajnos a kifejezésfájlt nem mindig használják pontosan ugyanazra. Azonban a fájlméret logikája azon modellből származik, ahol a címtárbejegyzés fájlhoz csatolja a fájlt, majd a fájlnevek és a kapcsolódó metaadatok a könyvtárban tárolódnak.
A Cort Ammon válasza:
A fájlméret szemantikai jelentése eltér a használtatól.
Számos fájlméret érhető el. A leggyakoribb, és az, amit itt lát, a fájlban lévő bájtok száma. Ha a fájl üres szövegfájl, akkor valóban nulla bájtot tartalmazhat. Ez a szám fontos a programozók számára, mert gyakran szükségünk van egy fájl megnyitására, az összes adat olvasására és bezárására. Tudnunk kell, hogy hány bájtnyi adat lesz a fájlban, így előre tervezhetjük.
Egy másik értelemben 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 blokkban tárolhat adatokat, ami azt jelenti, hogy soha nem oszt ki semmit, ami nem egyenletes 64 kB-es többszöröse. Ez hatástalannak tűnik, de a könyvelést egy kicsit egyszerűbbé teheti, és gyakran egyszerűbb a gyorsabb.
Egy harmadik jelentés, amelyre húzza, az a tényleges bitszám, amely a merevlemezen szükséges egy fájl jelenlétének leírásához. Ez magában foglalja azokat az információkat is, amelyeket általában a fájltól elkülönítve tárolnak. Például Linuxban a fájlnév fogalmát a fájlban lévő könyvtár inode-ban tárolja. [Más megjegyzésekből származó adatok alapján ez (technikailag) a könyvtár adataiban tárolódik. Amikor ezt írtam, arra gondoltam, hogy a kis könyvtárban van. A 156 bájtnál kisebb adatok közvetlenül tárolhatók az inode-ban.] Ez nem egy általánosan használt jelentés, mert szörnyen nehéz meghatározni a fájlrendszer rendkívül mély belső működésének ismerete nélkül (például a fájl összes engedélyének tárolásához szükséges hely elszámolása). Ha azonban 1.000.000 bájtos merevlemezed van, és tudni akarod, hogy egy fájl mennyire illeszkedik a merevlemezre, ez nagyon fontos jelentést jelent Önnek!
Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.