Hvordan kan en fils størrelse være nul?
Vi løber alle gange på tværs af en "situation" på vores computere, der efterlader os fuldstændig forvirret, som en fil, der har en størrelse på nul, men hvordan er det endda muligt? Dagens SuperUser Q & A-indlæg har svarene på en forvirret læsers spørgsmål.
Dagens Spørgsmål & Svar session kommer til os med venlig hilsen af SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.
Spørgsmålet
SuperUser-læser Eugene S ønsker at vide, hvordan en fils størrelse kan være nul:
Dette er noget, jeg løb ind i og kunne ikke tænke på en ordentlig forklaring. Hvis jeg opretter en tom * .txt fil på min computer og så se på dens størrelse viser den en størrelse på nul. Hvordan er det muligt? Jeg mener, selvom filen selv er tom, skal den stadig have en vis størrelse (selvom det kun er at gemme sit eget navn). Hvordan kan dette forklares?
Hvordan er det muligt for en fil at have en størrelse på nul?
Svaret
SuperUser bidragsydere David Schwartz og Cort Ammon har svaret for os. Først op, David Schwartz:
Det er muligt, fordi der virkelig ikke er nogen fil. Der er kun en mappe med et navn og en ejer. Mappen er logisk forskellig fra filen. For eksempel kan den samme fil have mere end et navn i mere end en mappe.
Desværre er begrebet fil ikke altid brugt til at betyde præcis det samme. Men filstørrelseslogikken kommer fra den model, hvor en mappepost tilføjer en fil til en mappe, så gemmes filnavnet og relaterede metadata i mappen.
Efterfulgt af svaret fra Cort Ammon:
Den semantiske betydning af filstørrelse er forskellig fra den, du bruger.
Der er mange filstørrelser, der er meningsfulde. Den mest almindelige, og den du ser her, er antallet af byte i filen. Hvis filen er en tom tekstfil, kan den faktisk indeholde nul byte. Dette nummer er vigtigt for programmører, fordi vi ofte skal åbne en fil, læse alle dataene og lukke den. Vi skal vide, hvor mange bytes data der vil være i filen, så vi kan planlægge fremad.
En anden betydning skyldes den måde, hvorpå de fleste filsystemer gemmer data. De fleste filsystemer gemmer data i blokke. F.eks. Kan filsystemet lagre data i 64 kB blokke, hvilket betyder, at det aldrig vil allokere noget, der ikke er et lige flertal på 64 kB. Det lyder ineffektivt, men det kan gøre bogføring ganske enklere, og ofte betyder det enklere at gøre bogføring.
En tredje betydning, som du slæber på, ville være det faktiske antal bits, der kræves på harddisken, for at beskrive tilstedeværelsen af en fil. Dette omfatter oplysninger, der normalt gemmes separat fra filen. For eksempel i Linux lagres begrebet filnavn i inoden for den mappe, der indeholder filen. [Baseret på input fra andre kommentarer lagres dette (teknisk) i mappens data. Da jeg skrev dette, tænkte jeg på småkatalog sagen. Data mindre end 156 bytes kan gemmes direkte i inoden.] Dette er ikke en almindeligt anvendt betydning, fordi det er frygteligt svært at bestemme uden at kende de enormt dybe indre funktioner i dit filsystem (f.eks. At regne med pladsen, der er nødvendigt for at gemme alle tilladelser på filen). Men hvis du har en 1.000.000 byte harddisk og vil vide, hvor stor en fil kan passe på den harddisk, vil dette være en meget vigtig betydning for dig!
Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.