Når man benytter seg av `du`-kommandoen i Linux, vil man oppdage at det eksisterer en forskjell mellom den faktiske diskbruken og den reelle størrelsen på en fil eller mappe. Vi skal her gå nærmere inn på hvorfor disse to verdiene ikke nødvendigvis er identiske.
Den Faktiske Diskplassen og Filens Reelle Størrelse
Størrelsen som en fil oppgir, og plassen den faktisk opptar på lagringsenheten, er ofte ikke sammenfallende. Dette skyldes at diskplass tildeles i såkalte blokker. Om en fil er mindre enn en hel blokk, vil den likevel få tildelt en hel blokk, da filsystemet ikke opererer med mindre enheter for lagring.
Med mindre en filstørrelse er et eksakt multiplum av blokkstørrelsen, vil den plassen filen krever alltid rundes opp til den nærmeste hele blokken. For eksempel: hvis en fil er større enn to blokker, men mindre enn tre, vil den uansett trenge tre blokker med lagringsplass.
Det benyttes to ulike mål når vi snakker om filstørrelse. Det første er filens reelle størrelse, som angir antall byte med data filen består av. Det andre er filens effektive størrelse på lagringsenheten, som refererer til antall blokker som kreves for å lagre filen.
Et Illustrerende Eksempel
La oss se på et enkelt eksempel for å illustrere dette. Vi sender et enkelt tegn til en fil for å skape en liten fil:
echo "1" > geek.txt
Nå skal vi benytte `ls` kommandoen med det lange formatet for å inspisere filstørrelsen:
ls -l geek.txt
Filens lengde er representert ved den numeriske verdien som følger etter oppføringene «dave dave», i dette tilfellet to byte. Men hvorfor er det to byte, når vi kun sendte et enkelt tegn til filen? La oss undersøke hva som skjer inne i selve filen.
Vi skal nå bruke `hexdump`-kommandoen, som vil gi oss nøyaktig informasjon om antall byte, og tillater oss å «se» tegn som ikke skrives ut som heksadesimale verdier. Vi benytter også `-C` (kanonisk) alternativet, for å tvinge utdataene til å vise heksadesimale verdier i en bestemt format.