Jak může být velikost souboru nula?
Všichni občas narazíme na "situaci" v našich počítačích, která nás zanechává úplně zmatená, jako je soubor, který má velikost nula, ale jak je to možné? Dnešní příspěvek SuperUser Q & A má odpovědi na zmatenou otázku čtenáře.
Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.
Otázka
Čtecí zařízení SuperUser Eugene S chce vědět, jak velikost souboru může být nula:
To je něco, co jsem narazil a nemohl jsem přemýšlet o správném vysvětlení. Pokud vytvořím prázdnou * .txt soubor na mém počítači a pak se podívejte na jeho velikost, ukazuje velikost nula. Jak je to možné? Myslím tím, že i když je samotný soubor prázdný, musí mít ještě nějakou velikost (dokonce i když má jen uložit vlastní jméno). Jak lze to vysvětlit?
Jak je možné, aby soubor měl velikost nula?
Odpověď
Uživatelé SuperUser David Schwartz a Cort Ammon mají pro nás odpověď. První, David Schwartz:
Je to možné, protože ve skutečnosti neexistuje žádný soubor. Existuje pouze položka adresáře s jménem a vlastníkem. Položka adresáře je logicky odlišná od souboru. Například stejný soubor může mít více než jeden název ve více než jednom adresáři.
Soubor termínu bohužel není vždy používán tím, že znamená přesně to samé. Ale logika velikosti souboru pochází z modelu, kde položka adresáře přiřadí soubor do adresáře, jsou v adresáři uloženy názvy souborů a související metadata.
Následuje odpověď Cort Ammon:
Sémantický význam velikosti souboru se liší od významu, který používáte.
Existuje mnoho souborů, které mají smysl. Nejběžnější a ten, který zde vidíte, je počet bajtů v souboru. Pokud je soubor prázdný textový soubor, může skutečně obsahovat nulové bajty. Toto číslo je důležité pro programátory, protože často potřebujeme otevřít soubor, přečíst všechna data a zavřít jej. Musíme vědět, kolik bajtů dat bude v souboru, abychom mohli naplánovat.
Dalším významem je způsob, jakým většina souborových systémů ukládá data. Většina systémů souborů ukládá data do bloků. Souborový systém může například ukládat data na bloky 64 kB, což znamená, že nikdy nepřidělí nic, který není sudý násobek 64 kB. To zní neúčinně, ale může to udělat účetnictví mnohem jednodušší a často jednodušší znamená rychlejší.
Třetí význam, na kterém se táhnete, by byl skutečný počet bitů požadovaných na pevném disku, aby popsal přítomnost souboru. To zahrnuje informace obvykle uložené odděleně od souboru. Například v Linuxu je koncept názvu souboru uložen v inode pro adresář obsahující soubor. [Na základě údajů z jiných připomínek je toto (technicky) uloženo v datech adresáře. Když jsem to napsal, přemýšlel jsem o malém adresáři. Údaje menší než 156 bytů mohou být uloženy přímo v inode.] Toto není běžně používaný význam, protože je obtížně určitelný bez znalosti mimořádně hlubokého vnitřního fungování vašeho souborového systému (například zaúčtování místa potřebného k ukládání všech oprávnění na soubor). Pokud však máte pevný disk o velikosti 1 000 000 bajtů a chcete vědět, jak velký soubor se může vejít na tento pevný disk, bude to pro vás velmi důležitým významem!
Musíte něco přidat k vysvětlení? Vyjměte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.