Hur man får storleken på en fil eller katalog i Linux

När du använder kommandot Linux du får du både den faktiska diskanvändningen och den verkliga storleken på en fil eller katalog. Vi kommer att förklara varför dessa värden inte är samma.

Faktisk diskanvändning och sann storlek

Storleken på en fil och det utrymme som den upptar på din hårddisk är sällan densamma. Diskutrymme tilldelas i block. Om en fil är mindre än ett block tilldelas ett helt block fortfarande till den eftersom filsystemet inte har en mindre enhet av fastigheter att använda.

Om inte en fils storlek är en exakt multipel av block, måste utrymmet som den använder på hårddisken alltid avrundas uppåt till nästa hela block. Till exempel, om en fil är större än två block men mindre än tre, tar det fortfarande tre block utrymme att lagra den.

Två mått används i förhållande till filstorlek. Den första är den faktiska storleken på filen, vilket är antalet byte innehåll som filen består av. Den andra är den effektiva storleken på filen på hårddisken. Detta är antalet filsystemblock som krävs för att lagra den filen.

Ett exempel

Låt oss titta på ett enkelt exempel. Vi omdirigerar ett enstaka tecken till en fil för att skapa en liten fil:

echo "1" > geek.txt

De geek.txt” kommandot i ett terminalfönster.’ width=”646″ height=”57″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Nu kommer vi att använda den långa formatlistan, ls, för att titta på fillängden:

ls -l geek.txt

De

Längden är det numeriska värdet som följer dave dave-posterna, vilket är två byte. Varför är det två byte när vi bara skickade ett tecken till filen? Låt oss ta en titt på vad som händer i filen.

Vi använder kommandot hexdump, som ger oss ett exakt antal byte och låter oss ”se” tecken som inte skrivs ut som hexadecimala värden. Vi kommer också att använda alternativet -C (kanoniskt) för att tvinga utdata att visa hexadecimala värden i