Storleken pÄ kataloger Àr inte vÀrt vÄr insats

Detta Àr ett helt vÀrdelöst, icke-anvÀndbart i praktisk tillÀmpning, men roligt litet inlÀgg om kataloger i *nix-system.

PÄ intervjuer dyker ofta trÄkiga frÄgor om inoder, allt-Àr-filer, som fÄ kan ge ett vettigt svar pÄ. Men om man grÀver lite djupare kan man hitta intressanta saker.

För att förstÄ inlÀgget nÄgra punkter:

  • allt Ă€r en fil. en katalog Ă€r ocksĂ„ en fil
  • i inoden lagras metadata om filen, men filnamnet lagras inte dĂ€r
  • filnamnet lagras i katalogens data
  • katalogens storlek, den som visas i ls och som standard Ă€r 4KB, beror pĂ„ antalet filer i katalogen och lĂ€ngden pĂ„ deras namn
  • det Ă€r uppenbart att ju fler filer, desto större blir katalogens storlek

Och nu till det intressanta: skapa en katalog med en miljon filer, kolla katalogens storlek och sedan ta bort alla filer och titta pÄ katalogens storlek.

$ mkdir niceDir && cd niceDir
# beroende pÄ lagringsmediumets hastighet, kan nÀsta kommando ta 2-10 minuter
$ 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 2 aug 13:37 .
$ find . -type f -delete
$ ls -l
total 0
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M 2 aug  13:37 .

Som man kan se har katalogens storlek inte Ă€ndrats, Ă€ven om det verkar sĂ„ 🙂

Att reparera katalogens storlek (utan att ta bort) kan endast göras med hjÀlp av fsck (och alternativet -D) i avmonterat tillstÄnd.

Och nÀr jag började leta efter varför det Àr sÄ, visade det sig att detta beteende redan diskuterades för 10 Är sedan diskuterades i lkml. Och enligt utvecklarna Àr en lösning inte vÀrd den insatta anstrÀngningen.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster