Hierdie is 'n heeltemal nuttelose, onnodige in praktiese toepassing, maar snaakse klein plasing oor dopgehou in *nix-stelsels. Dit is Vrydag.
Tydens onderhoude ontstaan ββdikwels vervelige vrae oor inodes, alles-is-lΓͺers, wat min mense met verstand kan beantwoord. Maar as jy 'n bietjie dieper delf, kan jy interessante dinge vind.
Om die pos te verstaan, 'n paar punte:
- alles is 'n lΓͺer. gids is ook 'n lΓͺer
- die inode stoor metadata van die lΓͺer, maar die lΓͺernaam word nie daar gestoor nie
- die lΓͺernaam word in die gidsdata gestoor
- Die grootte van die gids, dieselfde een wat in ls gewys word en by verstek 4Kb is, hang af van die aantal lΓͺers in die gids en die lengte van hul name
- Natuurlik, hoe meer lΓͺers, hoe groter is die gidsgrootte
Nou hier is die interessante deel: ons skep 'n gids met 'n miljoen lΓͺers, kontroleer die grootte van die gids, en vee dan al die lΓͺers uit en kyk na die grootte van die gids.
$ 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 .
Soos u kan sien, het die gidsgrootte nie verander nie, alhoewel dit lyk :)
U kan slegs die grootte van 'n gids regmaak (sonder om dit uit te vee) met behulp van fsck (en die -D-opsie) in 'n ongemonteerde toestand.
Maar toe ek gaan soek het hoekom dit so was, het dit geblyk dat 10 jaar gelede al sulke gedrag het
Bron: will.com