Mae hwn yn swydd gwbl ddiwerth, diangen o ran cymhwysiad ymarferol, ond post bach doniol am gyfeiriaduron mewn systemau *nix. Mae'n ddydd Gwener.
Yn ystod cyfweliadau, mae cwestiynau diflas yn aml yn codi am inodau, ffeiliau popeth, na all llawer o bobl eu hateb yn gall. Ond os ydych chi'n cloddio ychydig yn ddyfnach, gallwch ddod o hyd i bethau diddorol.
I ddeall y post, ychydig o bwyntiau:
- mae popeth yn ffeil. cyfeiriadur hefyd yn ffeil
- mae'r inode yn storio metadata o'r ffeil, ond nid yw enw'r ffeil yn cael ei storio yno
- mae enw'r ffeil yn cael ei storio yn y data cyfeiriadur
- Mae maint y cyfeiriadur, yr un un a ddangosir yn ls ac sy'n 4Kb yn ddiofyn, yn dibynnu ar nifer y ffeiliau yn y cyfeiriadur a hyd eu henwau
- Yn amlwg, po fwyaf o ffeiliau, y mwyaf yw maint y cyfeiriadur
Nawr dyma'r rhan ddiddorol: rydyn ni'n creu cyfeiriadur gyda miliwn o ffeiliau, yn gwirio maint y cyfeiriadur, ac yna'n dileu'r holl ffeiliau ac yn edrych ar faint y cyfeiriadur.
$ 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 .
Fel y gwelwch, nid yw maint y cyfeiriadur wedi newid, er y byddai'n ymddangos :)
Dim ond trwy ddefnyddio fsck (a'r opsiwn -D) y gallwch drwsio maint cyfeiriadur (heb ei ddileu) mewn cyflwr heb ei osod.
Ond pan es i i chwilio am pam fod hyn felly, mae'n troi allan bod 10 mlynedd yn Γ΄l ymddygiad o'r fath eisoes
Ffynhonnell: hab.com