Când utilizați instrucțiunea Linux `du`, veți primi informații referitoare la spațiul efectiv utilizat pe disc, dar și la dimensiunea efectivă a unui fișier sau director. În cele ce urmează, vom clarifica de ce aceste două valori nu sunt identice.
Diferența dintre utilizarea reală a discului și dimensiunea efectivă a fișierului
Mărimea unui fișier și spațiul pe care acesta îl ocupă fizic pe unitatea de stocare sunt rareori identice. Stocarea pe disc este organizată în blocuri. Dacă un fișier are o dimensiune mai mică decât un bloc, un bloc întreg îi este totuși alocat. Acest lucru se întâmplă deoarece sistemul de fișiere nu operează cu unități de stocare mai mici.
Așadar, în situația în care dimensiunea unui fișier nu este un multiplu exact de blocuri, spațiul necesar pe disc va fi întotdeauna rotunjit la dimensiunea următorului bloc întreg. De pildă, dacă un fișier este mai mare de două blocuri, dar mai mic de trei, este nevoie de un total de trei blocuri pentru a fi stocat în întregime.
În ceea ce privește dimensiunea fișierelor, sunt utilizate două unități de măsură. Prima este dimensiunea fizică a fișierului, care reprezintă cantitatea totală de octeți care alcătuiesc conținutul fișierului. A doua este dimensiunea efectivă pe care o ocupă fișierul pe disc, reprezentând numărul de blocuri ale sistemului de fișiere necesare pentru a stoca fișierul în cauză.
Exemplu practic
Pentru a ilustra acest concept, vom lua un exemplu simplu. Vom redirecționa un singur caracter într-un fișier, creând astfel un fișier de dimensiuni reduse:
echo "1" > geek.txt
Pentru a vizualiza dimensiunea fișierului nou creat, vom utiliza comanda `ls` cu opțiunea `-l`, obținând o listare detaliată:
ls -l geek.txt

Observăm că lungimea fișierului este indicată ca fiind de doi octeți. Cum de am obținut doi octeți când am trimis doar un caracter în fișier? Pentru a înțelege mai bine ce se întâmplă în interiorul fișierului, vom utiliza comanda `hexdump`.
Comanda `hexdump` ne va afișa numărul exact de octeți, permițându-ne să vizualizăm caracterele non-imprimabile sub formă de valori hexazecimale. Vom folosi opțiunea `-C` (canonică) pentru a forța afișarea valorilor hexazecimale într-un format ușor de interpretat.