A dimensione di u repertoriu ùn vale a pena u nostru sforzu

Questu hè un postu completamente inutile, innecessariu in l'applicazione pratica, ma divertente pocu postu nantu à i cartulari in i sistemi * nix. Hè vennari.

Duranti l'entrevista, ci sò spessu questioni noiosi nantu à inodes, all-is-files, chì poche persone ponu risponde sanamente. Ma si scavà un pocu più in fondu, pudete truvà cose interessanti.

Per capisce u post, uni pochi di punti:

  • tuttu hè un schedariu. U cartulare hè ancu un schedariu
  • l'inode guarda metadata da u schedariu, ma u nome di u schedariu ùn hè micca guardatu quì
  • u nome di u schedariu hè guardatu in i dati di u cartulare
  • A dimensione di u cartulare, u listessu chì hè indicatu in ls è hè 4Kb per difettu, dipende da u numeru di schedari in u cartulare è a durata di i so nomi.
  • Ovviamente, più schedarii, più grande hè a dimensione di u cartulare

Avà quì hè a parte interessante: creamu un annuariu cù un milione di schedari, verificate a dimensione di u repertoriu, è dopu sguassate tutti i schedari è fighjate a dimensione di u cartulare.

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

Comu pudete vede, a dimensione di u cartulare ùn hè micca cambiatu, ancu s'ellu pare :)

Pudete solu riparà a dimensione di un repertoriu (senza eliminà) cù fsck (è l'opzione -D) in un statu unmounted.

Ma quandu aghju andatu à circà per quessa chì era cusì, hè statu chì 10 anni fà un tali cumpurtamentu avia digià discussatu in lkml. È sicondu i sviluppatori, a correzione ùn vale micca solu u sforzu.

Source: www.habr.com

Add a comment