නාමාවලිවල විශාලත්වය අපගේ උත්සාහය වටින්නේ නැත

මෙය සම්පූර්ණයෙන්ම නිෂ්ඵල, ප්‍රායෝගික යෙදුමේ අනවශ්‍ය, නමුත් *nix පද්ධතිවල නාමාවලි පිළිබඳ හාස්‍යජනක කුඩා පෝස්ටුවකි. අද සිකුරාදා.

සම්මුඛ සාකච්ඡා වලදී, නීරස ප්‍රශ්න බොහෝ විට පැන නගින්නේ ඉනෝඩ, සියල්ල ගොනු, ස්වල්ප දෙනෙකුට හොඳින් පිළිතුරු දිය හැකි ය. නමුත් ඔබ ටිකක් ගැඹුරට හාරා බැලුවහොත් ඔබට රසවත් දේවල් සොයාගත හැකිය.

ලිපිය තේරුම් ගැනීමට, කරුණු කිහිපයක්:

  • සියල්ල ගොනුවකි. නාමාවලිය ද ගොනුවකි
  • inode ගොනුවේ පාර-දත්ත ගබඩා කරයි, නමුත් ගොනු නාමය එහි ගබඩා නොවේ
  • ගොනු නාමය නාමාවලියේ දත්ත ගබඩා කර ඇත
  • ඩිරෙක්ටරියේ ප්‍රමාණය, ls හි පෙන්වා ඇති අතර පෙරනිමියෙන් 4Kb වන අතර, ඩිරෙක්ටරියේ ඇති ගොනු ගණන සහ ඒවායේ නම්වල දිග මත රඳා පවතී.
  • නිසැකවම, වැඩි ගොනු, නාමාවලියේ විශාලත්වය විශාල වේ

දැන් මෙන්න රසවත් කොටස: අපි ගොනු මිලියනයක් සහිත ඩිරෙක්ටරියක් සාදා, ඩිරෙක්ටරියේ ප්රමාණය පරීක්ෂා කරන්න, ඉන්පසු සියලුම ගොනු මකා දමා ඩිරෙක්ටරියේ ප්රමාණය දෙස බලන්න.

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

ඔබට පෙනෙන පරිදි, නාමාවලියේ ප්‍රමාණය වෙනස් වී නැත, නමුත් එය පෙනේ :)

ඔබට සවිකල නොහැකි තත්වයක fsck (සහ -D විකල්පය) භාවිතයෙන් නාමාවලියක ප්‍රමාණය (එය මකා දැමීමකින් තොරව) පමණක් සවි කළ හැක.

නමුත් මෙය එසේ වූයේ මන්දැයි සොයා බැලීමට ගිය විට, මීට වසර 10 කට පෙර එවැනි හැසිරීම් දැනටමත් සිදුවී ඇති බව පෙනී ගියේය සාකච්ඡා කළා lkml හි. සංවර්ධකයින්ට අනුව, නිවැරදි කිරීම හුදෙක් උත්සාහය වටින්නේ නැත.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න