Бул таптакыр пайдасыз, практикалык колдонууда керексиз, бирок * nix системаларындагы каталогдор жөнүндө күлкүлүү кичинекей пост. Бүгүн жума.
Интервью учурунда көп учурда иноддор, бардыгы – файлдар жөнүндө кызыксыз суроолор пайда болот, аларга саналуу гана адамдар жооп бере алат. Бирок бир аз тереңирээк казсаңыз, кызыктуу нерселерди таба аласыз.
Постту түшүнүү үчүн, бир нече пункт:
- баары бир файл. каталог да файл болуп саналат
- 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