Ovo je potpuno beskoristan, nepotreban u praktičnoj primjeni, ali smiješan mali post o imenicima u *nix sustavima. Danas je petak.
Tijekom intervjua često se pojavljuju dosadna pitanja o inodima, sve-je-datotekama, na koja malo ljudi može razumno odgovoriti. Ali ako malo dublje kopate, možete pronaći zanimljive stvari.
Da biste razumjeli post, nekoliko stvari:
- sve je datoteka. imenik je također datoteka
- inode pohranjuje metapodatke iz datoteke, ali naziv datoteke nije tamo pohranjen
- naziv datoteke pohranjuje se u podatke direktorija
- Veličina direktorija, ista ona koja je prikazana u ls i iznosi 4 Kb prema zadanim postavkama, ovisi o broju datoteka u direktoriju i duljini njihovih imena
- Očito, što je više datoteka, veća je veličina direktorija
Sada slijedi zanimljivi dio: stvaramo direktorij s milijun datoteka, provjeravamo veličinu direktorija, a zatim brišemo sve datoteke i gledamo veličinu direktorija.
$ 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 .
Kao što vidite, veličina direktorija se nije promijenila, iako se čini :)
Veličinu direktorija možete popraviti samo (bez brisanja) koristeći fsck (i opciju -D) u nemontiranom stanju.
Ali kad sam krenuo tražiti zašto je to tako, pokazalo se da je prije 10 godina takvo ponašanje već bilo
Izvor: www.habr.com