Stærð möppurnar er ekki fyrirhafnar okkar virði

Þetta er algjörlega gagnslaus, óþörf í hagnýtri notkun, en fyndin lítil færsla um möppur í *nix kerfum. Það er föstudagur.

Í viðtölum vakna oft leiðinlegar spurningar um inóda, allt-er-skrár, sem fáir geta svarað af skynsemi. En ef þú kafar aðeins dýpra geturðu fundið áhugaverða hluti.

Til að skilja færsluna, nokkrir punktar:

  • allt er skrá. mappa er líka skrá
  • inode geymir lýsigögn úr skránni, en skráarnafnið er ekki vistað þar
  • skráarnafnið er geymt í skráargögnunum
  • Stærð möppunnar, sú sama og er sýnd í ls og er sjálfgefið 4Kb, fer eftir fjölda skráa í möppunni og lengd nafna þeirra
  • Augljóslega, því fleiri skrár, því stærri er skráarstærðin

Núna er það áhugaverði hluti: við búum til möppu með milljón skrám, athugum stærð möppunnar og eyðum síðan öllum skrám og skoðum stærð möppunnar.

$ 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 .

Eins og þú sérð hefur skráarstærðin ekki breyst, þó það virðist :)

Þú getur aðeins lagað stærð möppu (án þess að eyða henni) með því að nota fsck (og -D valkostinn) í ótengt ástandi.

En þegar ég fór að leita að því hvers vegna þetta var svona, kom í ljós að fyrir 10 árum síðan hafði slík hegðun þegar rætt í lkml. Og samkvæmt hönnuðunum er lagfæringin einfaldlega ekki fyrirhafnarinnar virði.

Heimild: www.habr.com

Bæta við athugasemd