Kataloogide suurus ei vääri meie pingutusi

See on täiesti kasutud, praktilises mõttes mitte vajalik, kuid naljakas väike postitus *nix süsteemide kataloogidest. Reede on ju.

Tööl intervjuudes kerkivad sageli esile igavad küsimused ainode ja kõike-oleb-failide kohta, millele vähe keegi suudab adekvaatselt vastata. Kuid kui pisut sügavamale kaevuda, võib leida huvitavaid asju.

Postituse mõistmiseks mõned teesid:

  • kõik on fail. kataloog on samuti fail.
  • ainodes säilitatakse faili metaandmed, kuid faili nime seal ei hoita.
  • faili nimi hoitakse katalooge andmetes.
  • katalooge suurus, see, mis kuvatakse ls käsu tulemusena ja millel on vaikimisi 4KB, sõltub kataloogis olevate failide arvust ja nende nimede pikkusest.
  • ilmselt, et mida rohkem faile, seda suurem on katalooge suurus.

Nüüd huvitav: loome katalooge miljoni failiga, kontrollime katalooge suurust, seejärel kustutame kõik failid ja vaatame katalooge suurust.

$ mkdir niceDir && cd niceDir
# sõltuvalt mäluseadmest võib järgmine käsk võtta aega 2-10 minutit
$ 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 .

Nagu tähele panna, ei ole kausta suurus muutunud, kuigi tundub, et peaks 🙂

Kausta suurust (ilma kustutamiseta) saab parandada ainult fsck abil (ja valiku -D) lahti ühendatud olekus.

Aga kui ma hakkasin uurima, miks see nii on, selgus, et 10 aastat tagasi oli sarnane käitumine juba arutasime lkmlis. Ja arendajate arvates ei tasu selle parandamiseks lihtsalt pingutust.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster