8Sep

Wie kann die Größe einer Datei Null sein?

Wir alle laufen gelegentlich über eine "Situation" auf unseren Computern, die uns völlig verwirrt, wie eine Datei, die eine Größe von Null hat, aber wie ist das überhaupt möglich? Der heutige SuperUser Q & A Post hat die Antworten auf die Frage eines verwirrten Lesers.

Heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.

Die Frage

SuperUser Leser Eugene S möchte wissen, wie die Größe einer Datei Null sein kann:

Das ist etwas, was ich herausgefunden habe und mir keine vernünftige Erklärung einfallen lassen konnte. Wenn ich eine leere *. txt-Datei auf meinem Computer erstelle und dann auf seine Größe schaue, wird eine Größe von Null angezeigt. Wie ist das möglich? Ich meine, auch wenn die Datei selbst leer ist, muss sie immer noch eine gewisse Größe haben( auch wenn sie nur ihren eigenen Namen speichern soll).Wie kann das erklärt werden?

Wie ist es möglich, dass eine Datei eine Größe von Null hat?

Die Antwort

SuperUser Mitwirkende David Schwartz und Cort Ammon haben die Antwort für uns. Zuerst, David Schwartz:

Es ist möglich, weil es wirklich keine Datei gibt. Es gibt nur einen Verzeichniseintrag mit einem Namen und einem Besitzer. Der Verzeichniseintrag unterscheidet sich logisch von der Datei. Zum Beispiel kann dieselbe Datei mehr als einen Namen in mehr als einem Verzeichnis haben.

Leider wird mit dem Begriff Datei nicht immer genau dasselbe gemeint. Die Logik für die Dateigröße stammt jedoch aus dem Modell, bei dem ein Verzeichniseintrag eine Datei an ein Verzeichnis anfügt. Anschließend werden die Dateinamen und zugehörigen Metadaten im Verzeichnis gespeichert.

Gefolgt von der Antwort von Cort Ammon:

Die semantische Bedeutung der Dateigröße unterscheidet sich von der, die Sie verwenden.

Es gibt viele Dateigrößen, die aussagekräftig sind. Die gebräuchlichste und die, die Sie hier sehen, ist die Anzahl der Bytes in der Datei. Wenn die Datei eine leere Textdatei ist, kann sie tatsächlich null Bytes enthalten. Diese Nummer ist für Programmierer wichtig, da wir oft eine Datei öffnen, alle Daten lesen und schließen müssen. Wir müssen wissen, wie viele Datenbytes in der Datei enthalten sind, damit wir vorausplanen können.

Eine andere Bedeutung ergibt sich aus der Art, wie die meisten Dateisysteme Daten speichern. Die meisten Dateisysteme speichern Daten in Blöcken. Zum Beispiel kann das Dateisystem Daten in Blöcken von 64 kB speichern, was bedeutet, dass es niemals etwas zuweisen wird, das kein geradzahliges Vielfaches von 64 kB ist. Das klingt ineffizient, aber es kann die Buchhaltung ein wenig einfacher machen, und oft einfacher bedeutet schneller.

Eine dritte Bedeutung, an der Sie zerren, ist die tatsächliche Anzahl der Bits, die auf der Festplatte benötigt werden, um das Vorhandensein einer Datei zu beschreiben. Dazu gehören Informationen, die normalerweise getrennt von der Datei gespeichert werden. Zum Beispiel wird in Linux das Konzept des Dateinamens im Inode für das Verzeichnis gespeichert, das die Datei enthält.[ Basierend auf anderen Kommentaren wird dies( technisch) in den Daten des Verzeichnisses gespeichert. Als ich das schrieb, dachte ich an den kleinen Fall. Daten kleiner als 156 Bytes können direkt im Inode gespeichert werden. ] Dies ist keine allgemein gebräuchliche Bedeutung, da es sehr schwer zu bestimmen ist, ohne die enorm tiefen inneren Abläufe Ihres Dateisystems zu kennen( wie zum Beispiel den Platz, der benötigt wird, um alle Berechtigungen für die Datei zu speichern).Wenn Sie jedoch eine 1.000.000-Byte-Festplatte haben und wissen möchten, wie groß eine Datei auf diese Festplatte passen kann, ist dies für Sie eine sehr wichtige Bedeutung!

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.