Jak skompresować katalog

21

Co jakiś czas niektóre aplikacje działają dziko i zapełniają katalog ogromną ilością plików. Po naprawieniu błędu i wyczyszczeniu plików katalog pozostaje duży (> 50 MB), mimo że zawiera tylko 20-30 plików.

Czy jest jakieś polecenie, które kompaktuje katalog bez konieczności jego ponownego tworzenia?

Punkty bonusowe: czy ogromny pusty katalog wpływa na wydajność dostępu do tego katalogu? Zakładam, że tak, ale może nie warto się tym przejmować. Wydaje się, że lsw takim katalogu jest to wolniejsze .

Mathieu Longtin
źródło
Nie sądzę, żeby coś takiego istniało (ale oczywiście mogę się całkowicie mylić). Być może jednak niektóre narzędzia specyficzne dla systemu plików - jakiego FS używasz?
Mat
ext3, ale widziałem ten problem na większości systemów plików, z którymi miałem do czynienia w świecie unix. Nie sądzę też, aby istniało takie narzędzie, ale chciałbym się dowieść, że się mylę.
Mathieu Longtin
4
Oznacziłem twoje pytanie jako „ext3”, ponieważ pytanie to jest bardzo specyficzne dla systemu plików. Nie znam odpowiedzi na ext3 (podejrzewam, że musisz ponownie utworzyć katalog, aby go zmniejszyć), ale czy próbowałeś wymusić fsck? ext3 fsckma przepustkę „Katalog optymalizacji”. Nie wiem co to robi, ale może zmniejsza katalogi, które są zbyt duże? W każdym razie, jako punkt danych FWIW, xfs autoshrink kataloguje, z których usunięto pliki.
Celada
Czy przypadkiem usunąłeś otwarte pliki?
Karlson
1
ufs na BSD i Mac HFS oba zmniejszają katalogi w locie. Jestem zaskoczony, gdy dowiedziałem się, że ext3 nie. Wydaje się, że ext4 też tego nie robi.
Kyle Jones

Odpowiedzi:

10

Uruchomić e2fsck -Dna nieoprawione plików.

psusi
źródło
1
Miałem nadzieję na coś mniej szkodliwego.
Mathieu Longtin
1
@MathieuLongtin, możesz także przenieść wszystko do nowego katalogu, usunąć stary i zmienić nazwę nowego z powrotem.
psusi
Wiedziałem o tej sztuczce, ale może zepsuć procesy, używając katalogu jako bieżącego katalogu roboczego.
Mathieu Longtin