Når du bruger kommandoen Linux du, får du både det faktiske diskforbrug og den sande størrelse af en fil eller et bibliotek. Vi vil forklare, hvorfor disse værdier ikke er de samme.
Faktisk diskbrug og ægte størrelse
Størrelsen af en fil og den plads, den optager på din harddisk, er sjældent den samme. Diskplads er tildelt i blokke. Hvis en fil er mindre end en blok, tildeles en hel blok stadig til den, fordi filsystemet ikke har en mindre enhed af fast ejendom at bruge.
Medmindre en fils størrelse er et nøjagtigt multiplum af blokke, skal den plads, den bruger på harddisken, altid rundes op til den næste hele blok. For eksempel, hvis en fil er større end to blokke, men mindre end tre, tager det stadig tre blokke plads at gemme den.
Der bruges to mål i forhold til filstørrelse. Den første er den faktiske størrelse af filen, som er antallet af bytes indhold, der udgør filen. Den anden er den effektive størrelse af filen på harddisken. Dette er antallet af filsystemblokke, der er nødvendige for at gemme denne fil.
Et eksempel
Lad os se på et simpelt eksempel. Vi omdirigerer et enkelt tegn til en fil for at oprette en lille fil:
echo "1" > geek.txt
geek.txt” kommando i et terminalvindue.’ width=”646″ højde=”57″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>
Nu vil vi bruge den lange formatliste, ls, til at se på fillængden:
ls -l geek.txt
Længden er den numeriske værdi, der følger dave dave-indtastningerne, som er to bytes. Hvorfor er det to bytes, når vi kun har sendt et tegn til filen? Lad os tage et kig på, hvad der sker inde i filen.
Vi bruger kommandoen hexdump, som giver os et nøjagtigt antal byte og giver os mulighed for at “se” ikke-udskrivende tegn som hexadecimale værdier. Vi vil også bruge -C (kanonisk) mulighed for at tvinge output til at vise hexadecimale værdier i