Veľkosť adresárov nestojí naše úsilie

Toto je úplne zbytočný, prakticky nepoužiteľný, ale zábavný malý príspevok o adresároch v systémoch *nix. Predsa len je piatok.

Na pohovoroch sa často objavujú nudné otázky o inódoch, všetko-jeden-súbor, na ktoré málokto môže rozumne odpovedať. Ale ak sa ponoríme trochu hlbšie, môžeme nájsť zaujímavé veci.

Na pochopenie príspevku trochu tezí:

  • všetko je súbor. adresár je tiež súbor
  • v inóde sa uchovávajú meta-dáta súboru, ale názov súboru tam nie je uložený
  • názov súboru je uložený v údajoch adresára
  • veľkosť adresára, tá, ktorá sa zobrazuje v ls a predvolene je 4KB, závisí od počtu súborov v adresári a dĺžky ich názvov
  • je zrejmé, že čím viac súborov, tým väčšia veľkosť adresára

A teraz niečo zaujímavé: vytvoríme adresár s milionom súborov, skontrolujeme veľkosť adresára a potom vymažeme všetky súbory a pozrieme sa na veľkosť adresára.

$ mkdir niceDir && cd niceDir
# v závislosti od rýchlosti úložiska, nasledujúci príkaz môže trvať 2-10 minút
$ for ((i=1;i<133700;i++)); do touch long_long_looong_man_sakeru_$i ; done
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M 2. aug 13:37 .
$ find . -type f -delete
$ ls -l
total 0
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M  2. aug 13:37 .

Ako si môžete všimnúť, veľkosť adresára sa nezmenila, hoci by sa to mohlo zdať 🙂

Opraviť veľkosť adresára (bez odstránenia) je možné iba pomocou fsck (a voľby -D) v odmontovanom stave.

A keď som sa išiel hľadať, prečo je to tak, zistil som, že pred 10 rokmi takéto správanie už diskutovali v lkml. A podľa názoru vývojárov oprava jednoducho nestojí za vynaložené úsilie.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster