Direktorioen tamainak ez du merezi gure ahalegina

Aplikazio praktikoan guztiz alferrikakoa da, alferrikakoa, baina dibertigarria *nix sistemetako direktorioei buruz. Ostirala da.

Elkarrizketetan, galdera aspergarriak sortzen dira sarritan inodoei buruz, dena-fitxategiei buruz, eta jende gutxik zentzuz erantzuten die. Baina pixka bat sakontzen baduzu, gauza interesgarriak aurki ditzakezu.

Mezua ulertzeko, puntu batzuk:

  • dena fitxategi bat da. direktorioa fitxategi bat ere bada
  • inodoak fitxategiko metadatuak gordetzen ditu, baina fitxategiaren izena ez da bertan gordetzen
  • fitxategiaren izena direktorioko datuetan gordetzen da
  • Direktorioaren tamaina, ls-n agertzen den bera eta berez 4Kb-koa dena, direktorioaren fitxategi kopuruaren eta haien izenen luzeraren araberakoa da.
  • Jakina, zenbat eta fitxategi gehiago, orduan eta handiagoa izango da direktorioaren tamaina

Orain hona hemen zati interesgarria: milioi bat fitxategi dituen direktorio bat sortzen dugu, direktorioaren tamaina egiaztatu eta gero fitxategi guztiak ezabatu eta direktorioaren tamaina begiratu.

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

Ikus dezakezunez, direktorioaren tamaina ez da aldatu, badirudi ere :)

Direktorio baten tamaina bakarrik konpondu dezakezu (ezabatu gabe) fsck erabiliz (eta -D aukera) muntatu gabeko egoeran.

Baina hori zergatik zen horrela bilatzera joan nintzenean, orain dela 10 urte horrelako jokabideak bazeudela ikusi zen eztabaidatu lkml-n. Eta garatzaileen arabera, konponketak ez du esfortzua merezi.

Iturria: www.habr.com

Gehitu iruzkin berria