D'Gréisst vun de Verzeichnisser ass eis Effort net wäert

Dëst ass e komplett nëtzlosen, onnéideg an der praktescher Applikatioun, awer witzeg klenge Post iwwer Verzeichnisser an *nix Systemer. Et ass Freideg.

Bei den Interviewe stelle sech dacks langweileg Froen iwwer Inoden, alles-ass-Dateien, op déi wéineg Leit verstänneg beäntweren. Awer wann Dir e bësse méi déif gräift, kënnt Dir interessant Saachen fannen.

Fir de Post ze verstoen, e puer Punkten:

  • alles ass e Fichier. Verzeechnes ass och eng Datei
  • d'Inode späichert Metadaten aus der Datei, awer de Dateinumm gëtt net do gespäichert
  • de Dateinumm gëtt am Verzeechnesdaten gespäichert
  • D'Gréisst vum Verzeichnis, déi selwecht, déi am ls gewise gëtt an 4Kb als Standard ass, hänkt vun der Unzuel vun de Fichieren am Verzeechnes an der Längt vun hiren Nimm of
  • Natierlech, wat méi Dateien, dest méi grouss ass d'Verzeechnesgréisst

Elo hei ass den interessanten Deel: mir erstellen e Verzeechnes mat enger Millioun Dateien, kontrolléieren d'Gréisst vum Verzeechnes, a läschen dann all d'Fichier'en a kucken d'Gréisst vum Verzeechnes.

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

Wéi Dir gesitt, ass d'Verzeechnesgréisst net geännert, obwuel et schéngt :)

Dir kënnt nëmmen d'Gréisst vun engem Verzeechnes fixéieren (ouni et ze läschen) mat fsck (an der -D Optioun) an engem unmounted Staat.

Mä wéi ech gaange sinn, firwat dat esou war, huet sech erausgestallt, datt virun 10 Joer esou Verhalen schonn diskutéiert op lkml. An no den Entwéckler ass d'Fixatioun einfach den Effort net wäert.

Source: will.com

Setzt e Commentaire