De grutte fan 'e mappen is ús ynspanning net wurdich

Dit is in folslein nutteloos, net nedich yn praktyske tapassing, mar grappich lytse post oer mappen yn *nix-systemen. It is freed.

By ynterviews komme faak saaie fragen op oer ynoden, alles-is-files, dêr't in pear minsken mei ferstannich op antwurdzje kinne. Mar as jo in bytsje djipper grave, kinne jo nijsgjirrige dingen fine.

Om de post te begripen, in pear punten:

  • alles is in triem. map is ek in triem
  • de inode bewarret metadata fan 'e triem, mar de triemnamme wurdt dêr net opslein
  • de triemnamme wurdt opslein yn de triemtafel gegevens
  • De grutte fan 'e map, deselde dy't wurdt werjûn yn ls en is standert 4Kb, hinget ôf fan it oantal triemmen yn de map en de lingte fan harren nammen
  • Fansels, hoe mear bestannen, hoe grutter de mapgrutte

No hjir is it nijsgjirrige diel: wy meitsje in map mei in miljoen bestannen, kontrolearje de grutte fan 'e map, en wiskje dan alle bestannen en sjogge nei de grutte fan' e map.

$ mkdir niceDir && cd niceDir
# в зависимости от скорости носителя, следующая команда может занять 2-10 минут
$ 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 Aug 2 13:37 .
$ find . -type f -delete
$ ls -l
total 0
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug  2 13:37 .

Lykas jo kinne sjen, is de mapgrutte net feroare, hoewol it liket :)

Jo kinne allinich de grutte fan in map reparearje (sûnder it te wiskjen) mei fsck (en de -D-opsje) yn in unmounted steat.

Mar doe't ik gie om te sykjen wêrom't dit sa wie, die bliken dat 10 jier lyn sa'n gedrach al hie besprutsen yn lkml. En neffens de ûntwikkelders is de fix gewoan de muoite net wurdich.

Boarne: www.habr.com

Add a comment