Ky Ă«shtĂ« njĂ« postim i vogĂ«l, i bezdisshĂ«m, i paqĂ«ndrueshĂ«m nĂ« praktikĂ«, por argĂ«tues pĂ«r drejtoritĂ« nĂ« sistemet *nix. ĂshtĂ« e premte.
Në intervista shpesh dalin pyetje të mërzitshme për inodet, gjithçka është skedarë, për të cilat pak njerëz mund të përgjigjen në mënyrë të arsyeshme. Por nëse thellohemi pak më thellë, mund të gjejmë disa gjëra interesante.
Për të kuptuar postimin, disa pika të rëndësishme:
- gjithçka është skedar. drejtorja është gjithashtu një skedar
- në inod ruhet metadatë për skedarin, por emri i skedarit nuk ruhet aty
- emri i skedarit ruhet në të dhënat e drejtorisë
- madhĂ«sia e drejtorisĂ«, ajo e cila shfaqet nĂ« ls dhe pĂ«ré»èź€ Ă«shtĂ« 4Kb, varet nga numri i skedareve nĂ« drejtorinĂ« dhe gjatĂ«si e emrave tĂ« tyre
- sigurisht, sa më shumë skedare, aq më e madhe është madhësia e drejtorisë
Tani, ja e interesantja: krijojmë një drejtorinë me një milion skedare, kontrollojmë madhësinë e drejtorisë, pastaj fshijmë të gjitha skedaret dhe shohim madhësinë e drejtorisë.
$ mkdir niceDir && cd niceDir
# në varësi të shpejtësisë së bartësit, komanda pasuese mund të zgjasë 2-10 minuta
$ për ((i=1;i<133700;i++)); bëj touch long_long_looong_man_sakeru_$i ; bërë
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug 2 13:37 .
$ gjej . -tip f -fshi
$ ls -l
totali 0
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug 2 13:37 .Siç mund tĂ« vĂ«reni, madhĂ«sia e drejtorisĂ« nuk u ndryshua, megjithĂ«se duket si njĂ« çështje đ
Të riparoni madhësinë e drejtorisë (pa fshirje) mund të bëhet vetëm me ndihmën e fsck (dhe opsionin -D) në gjendje të montuar.
Dhe kur shkova të kërkoj përse ka ndodhur kështu, doli se 10 vjet më parë një sjellje e tillë ishte në lkml. Dhe sipas mendimit të zhvilluesve, korrigjimi thjesht nuk ia vlen përpjekjet e ngulitura.
Burimi: habr.com
