När du använder kommandon i Linux kan du erhålla information om både det faktiska diskutrymmet som används och den faktiska storleken på en fil eller katalog. Det är viktigt att förstå varför dessa två värden inte alltid stämmer överens.
Skillnaden mellan diskförbrukning och filstorlek
En fils storlek och det utrymme den tar upp på hårddisken är sällan identiska. Detta beror på att diskutrymme allokeras i block. Om en fil är mindre än ett block, reserveras ändå ett helt block för den, eftersom filsystemet inte kan hantera mindre enheter.
Om inte filstorleken är en exakt multipel av blockstorleken, kommer det utrymme som används på hårddisken alltid att avrundas uppåt till närmaste hela block. Till exempel, om en fil är större än två block men mindre än tre, kommer den att kräva tre block för lagring.
Det finns två mått som används för att beskriva filstorlek. Det första är den faktiska storleken på filen, vilket motsvarar antalet byte som filen innehåller. Det andra är det faktiska utrymmet filen upptar på hårddisken, vilket är antalet block som behövs för att lagra filen.
Ett praktiskt exempel
Låt oss illustrera detta med ett exempel. Vi skapar en liten fil genom att omdirigera ett enda tecken till en ny fil:
echo "1" > exempel.txt
För att se filens storlek använder vi kommandot ls -l
:
ls -l exempel.txt
I resultatet, ser vi att filstorleken är 2 byte. Men varför är det 2 byte när vi bara skickade ett tecken till filen? Låt oss utforska filens innehåll.
Vi kan använda kommandot hexdump
, som ger oss en exakt bild av byten och gör det möjligt att ”se”
icke-utskrivbara tecken i hexadecimal form. Vi kommer också att använda alternativet -C
för att visa hexadecimala värden på ett tydligare sätt: