A könyvtárak mérete nem éri meg a fáradságot

Ez egy teljesen haszontalan, a gyakorlatban nem szükséges, de szórakoztató kis poszt a *nix rendszerek könyvtárairól. Hiszen péntek van.

Interjúk során gyakran elhangzanak unalmas kérdések az inódokról, a minden-fájl, amiről alig tud valaki értelmes választ adni. De ha egy kicsit mélyebbre ásunk, érdekes dolgokra bukkanhatunk.

A poszt megértéséhez néhány tézis:

  • minden fájl. A könyvtár is fájl
  • az inódban a fájl metaadatai tárolódnak, de a fájl neve nem kerül oda
  • a fájl neve a könyvtár adataiban tárolódik
  • a könyvtár mérete, amelyet az ls parancs mutat, és alapértelmezés szerint 4KB, a könyvtárban lévő fájlok számától és neveik hosszától függ
  • nyilvánvaló, hogy minél több fájl van, annál nagyobb a könyvtár mérete

Most pedig a érdekes rész: hozzunk létre egy könyvtárat egymillió fájlal, ellenőrizzük a könyvtár méretét, majd töröljük az összes fájlt, és nézzük meg a könyvtár méretét.

$ mkdir niceDir && cd niceDir
# a tároló sebességétől függően a következő parancs 2-10 percet is igénybe vehet
$ 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 .

Mint látni lehet, a könyvtár mérete nem változott, pedig úgy tűnne 🙂

A könyvtár méretének javítása (törlés nélkül) csak az fsck segítségével lehetséges (és a -D opcióval) lecsatolt állapotban.

Amikor pedig utána kezdtem keresni, hogy miért van ez így, kiderült, hogy 10 évvel ezelőtt már foglalkoztak ezzel a lkml-en. A fejlesztők véleménye szerint a javítás egyszerűen nem éri meg a fáradozást. A Plone 5.2 tartalomkezelő rendszer kiadása

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster