Dlaczego rozmiar pliku „kropkowego” „.” przekroczyć 4096?


10

Dzisiaj znalazłem „pusty” katalog o wielkości 4 MB.

Nie miał widocznej zawartości, więc spróbowałem ls -lah. To pokazało mi ukryte pliki (niezbyt duże). Szukając przyczyny, dla której katalog był tak duży, stwierdziłem, że plik kropkowy ( .) ma rozmiar 3,9 MB.

Co jest przechowywane w tym pliku? Czy to nie jest tylko rodzaj linku do tego samego katalogu?

Oto wyjście powłoki (anonimowe):

-bash# more /proc/version
Linux version 2.6.18-8.1.15.el5 (mockbuild@builder6.centos.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Mon Oct 22 08:32:04 EDT 2007
-bash# pwd
/data/foo/bar/tmp
-bash# ls -lah
total 4.1M
drwxrwxrwx  3 nobody nobody 3.9M Nov 21 10:02 .
drwxrwxrwx 16 nobody nobody 4.0K Aug 27 17:26 ..
-rw-------  1 root   root    20K Oct 25 14:06 .bash_history
...

Odpowiedzi:


14

Plik kropkowy, jak każdy katalog, zawiera listę nazw plików w tym katalogu i ich numerów i-węzłów. Więc jeśli kiedyś miałeś wiele plików w tym katalogu (co nie jest mało prawdopodobne w przypadku katalogu „tmp”), to spowodowałoby, że pozycja katalogu powiększyłaby się do tego rozmiaru.

Po zniknięciu plików system plików nie zmniejsza automatycznie pliku katalogu ponownie.

Możesz eksperymentować z tym sam, tworząc nowy pusty katalog, zrób ls -law nim, aby zobaczyć początkowy rozmiar (4096 na moim komputerze), a następnie touchwgraj dużo plików, co zwiększy rozmiar katalogu.

(Tak, wiem, że nadpisuję / jestem niedokładny na temat wielu szczegółów tutaj. Ale OP nie poprosił o pełne wyjaśnienie działania systemów plików EXT *).


2
Dzięki, to chyba wyjaśnia to zjawisko. Dwa pytania z ciekawości: kiedy plik katalogu ponownie się zmniejszy? Czy istnieje sposób na pokazanie zawartości tego pliku?
Martin Hennings,

3
(1) Zobacz także unix.stackexchange.com/questions/38639/… - krótka odpowiedź, usuń katalog i utwórz go ponownie.
Bristol

2
(2) Niestety, już nie. Kiedyś było to możliwe w starych wersjach UNIX.
Bristol

Możesz także uruchomić e2fsck -Dsystem plików, ale wymaga to odmontowania.
psusi

@Bristol debugfsmoże być wnikliwy
Volker Siegel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.