Սա բոլորովին անիմաստ, անհարկի գործնական կիրառման մեջ, բայց զվարճալի փոքրիկ գրառում է *nix համակարգերի դիրեկտորիաների մասին: Ուրբաթ է։
Հարցազրույցների ժամանակ հաճախ ձանձրալի հարցեր են ծագում inodes-ի, ամեն ինչ-է-ֆայլերի մասին, որոնց քչերը կարող են ողջամտորեն պատասխանել: Բայց եթե մի քիչ խորանաք, կարող եք հետաքրքիր բաներ գտնել։
Գրառումը հասկանալու համար մի քանի կետ.
- ամեն ինչ ֆայլ է: գրացուցակը նույնպես ֆայլ է
- inode-ը պահում է մետատվյալները ֆայլից, բայց ֆայլի անունը այնտեղ չի պահվում
- ֆայլի անունը պահվում է գրացուցակի տվյալների մեջ
- Գրացուցակի չափը, նույնը, որը ցուցադրվում է ls-ով և լռելյայն 4 Կբ է, կախված է գրացուցակում գտնվող ֆայլերի քանակից և դրանց անունների երկարությունից:
- Ակնհայտ է, որ որքան շատ ֆայլեր, այնքան մեծ է գրացուցակի չափը
Այժմ ահա հետաքրքիր մասը. մենք ստեղծում ենք գրացուցակ միլիոնավոր ֆայլերով, ստուգում ենք գրացուցակի չափը, այնուհետև ջնջում ենք բոլոր ֆայլերը և նայում գրացուցակի չափին:
$ 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 տարի առաջ նման վարքագիծ արդեն եղել է
Source: www.habr.com