Wie kann eine Dateigröße null sein?
Wir alle treffen gelegentlich auf eine "Situation" auf unseren Computern, die uns völlig verblüfft macht, zum Beispiel eine Datei mit einer Größe von Null, aber wie ist das überhaupt möglich? Der heutige Q & A-Beitrag von SuperUser enthält die Antworten auf die Frage eines verwirrten Lesers.
Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.
Die Frage
SuperUser-Leser Eugene S möchte wissen, wie die Dateigröße Null sein kann:
Dies ist etwas, auf das ich gestoßen bin und mir keine richtige Erklärung einfallen konnte. Wenn ich ein leeres erzeuge * .txt-Datei auf meinem Computer und dann auf seine Größe, zeigt es eine Größe von Null. Wie ist das möglich? Ich meine, selbst wenn die Datei selbst leer ist, muss sie noch eine gewisse Größe haben (selbst wenn sie nur ihren eigenen Namen speichert). Wie kann man das erklären??
Wie kann eine Datei eine Größe von Null haben??
Die Antwort
Die Superuser-Mitwirkenden David Schwartz und Cort Ammon haben die Antwort für uns. Zunächst einmal David Schwartz:
Es ist möglich, weil es wirklich keine Datei gibt. Es gibt nur einen Verzeichniseintrag mit Namen und Besitzer. Der Verzeichniseintrag unterscheidet sich logisch von der Datei. Eine Datei kann beispielsweise mehr als einen Namen in mehreren Verzeichnissen haben.
Leider bedeutet der Begriff Datei nicht immer genau dasselbe. Die Dateigrößenlogik 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 von Ihnen verwendeten.
Es gibt viele Dateigrößen, die von Bedeutung sind. Die häufigste, und die, die Sie hier sehen, ist die Anzahl der Bytes in der Datei. Wenn es sich bei der Datei um eine leere Textdatei handelt, kann sie tatsächlich null Bytes enthalten. Diese Nummer ist für Programmierer wichtig, da wir häufig 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 im Voraus planen 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 64-KB-Blöcken speichern, was bedeutet, dass niemals etwas zugewiesen wird, das nicht einmal ein Vielfaches von 64 KB ist. Das hört sich ineffizient an, kann aber die Buchhaltung erheblich vereinfachen und bedeutet, dass einfachere Mittel schneller sind.
Eine dritte Bedeutung, an der Sie zerren, wäre die tatsächliche Anzahl von Bits, die auf der Festplatte erforderlich ist, um das Vorhandensein einer Datei zu beschreiben. Dazu gehören Informationen, die normalerweise getrennt von der Datei gespeichert werden. In Linux wird beispielsweise das Konzept des Dateinamens im Inode für das Verzeichnis gespeichert, in dem sich die Datei befindet. [Basierend auf Eingaben aus anderen Kommentaren wird dies (technisch) in den Daten des Verzeichnisses gespeichert. Als ich das schrieb, dachte ich an den kleinen Ordner. Daten, die kleiner als 156 Byte sind, können direkt im Inode gespeichert werden.] Dies ist keine allgemein gebräuchliche Bedeutung, da es sehr schwer zu bestimmen ist, ohne die tiefgreifenden inneren Abläufe Ihres Dateisystems zu kennen (z. B. die Berücksichtigung des Speicherplatzes, der zum Speichern aller Berechtigungen für die Datei erforderlich ist). Wenn Sie jedoch eine 1.000.000-Byte-Festplatte haben und wissen möchten, wie groß eine Datei auf diese Festplatte passt, wird dies für Sie eine sehr wichtige Bedeutung haben!
Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.