Справочниктердин көлөмү биздин күчүбүзгө арзыбайт

Бул таптакыр пайдасыз, практикалык колдонууда керексиз, бирок * 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 жыл мурун мындай жүрүм-туруму болгон экен Биз талкуулашты lkml менен. Ал эми иштеп чыгуучулардын айтымында, оңдоо жөн гана күч-аракет жумшалбайт.

Source: www.habr.com

Комментарий кошуу