Czy istnieje sposób szybkiego uzyskania dokładnego rozmiaru katalogu (w tym rekurencyjnie wszystkich jego podkatalogów)? Nie chcę rozmiarów podkatalogów, mam na myśli, że powinny one być rekurencyjnie uwzględnione w raportowanym rozmiarze całkowitym.
W przeciwnym razie sposób uzyskania przybliżonego rozmiaru? Myślę, że coś w tym kierunku df
powoduje szybką odpowiedź dla całego systemu plików, ale tym razem dla konkretnego katalogu (i jego podkatalogów).
du
Wydaje się, że stosowane rozwiązania trwają wieki, gdy dany katalog zawiera tysiące podkatalogów.
du
jest jedyną znaną mi metodą. Problem polega na tym, że dane są rozproszone w całej hierarchii, więc musi zostać zebrane przez narzędzie, aby uzyskać liczby.Odpowiedzi:
Uważam, że jest to całkiem przydatne.
lub uzyskać podział wewnętrznych katalogów
a potem z pewnym, jeśli ma wiele podkatalogów
Powodem, dla którego używam opcji -m, jest upewnienie się, że otrzymam wynik w megabajtach. Uważam, że łatwiej mi porównywać wizualnie (gdy nie otrzymuję mieszanki jednostek, np. Porównaj 999 KB i 1 MB w porównaniu z 999000 MB i 1000000 MB), dodatkową korzyścią jest to, że możesz przekazać dane wyjściowe do sortowania.
Umieść to wszystko w tle i przekieruj wyjście, zajmie to czasu jakiejkolwiek metody, której używasz, jest to przegląd wielu plików, które zajmą czas.
Zwróć uwagę na sortowanie odwrotne, aby duże były na początku. Dodaj to do uruchomienia crona co n minut.
Następnie z aliasem ducache masz dość aktualne wykorzystanie katalogu.
źródło
shopt -s dotglob
, w przeciwnym raziedu -sm Directory/*
nie będą liczyć ukrytych plików / katalogów.da ci podsumowanie całkowitego rozmiaru w sformatowanym „ludzkim” wyniku.
Ponieważ szukałeś alternatywy dla
du
, próbowałemfind
, ale jest dokładnie tak samo:źródło
du
zajmuje dużo czasu, ponieważ daje dokładny wynik. Miałem nadzieję na narzędzie / polecenie, które zapewni szybką i brudną przybliżoną odpowiedź.df
ale działa to na cały system plików.Może ci się nie podobać moja odpowiedź, ale myślę, że najlepszym sposobem na robienie tego, co chcesz, jest regularne uruchamianie „du -s” w tle za pomocą crona i zapisywanie wyniku w pliku. Następnie, jeśli chcesz uzyskać przybliżoną wartość, użyj wartości z pliku. Ty decydujesz, jak często prowadzić du. Nie widzę szybszego sposobu uzyskania wartości. Command du jest wydajny w tym, co robi.
Jedynym innym sposobem, w jaki możesz to zrobić bardzo szybko, jest utworzenie systemu plików dla katalogu, a następnie df szybko dostanie odpowiedź, którą chcesz.
Jeśli szybciej jest wiedzieć wszystko w systemie plików oprócz katalogu, możesz uruchomić df dla systemu plików, du dla wszystkiego innego niż katalog i odjąć.
źródło
Nie pasuje dokładnie do twoich potrzeb (nie drukuje się w jednym wierszu), ale jest łatwiejszy niż inne rozwiązania:
To polecenie podaje rozmiar katalogu i podkatalogu oraz rozmiar największego pliku lub podkatalogu w bieżącym katalogu.
PS: Jest
head -2
tak w przypadku, gdy podkatalog zajmuje całe miejsce bieżącego katalogu i nasłuchuje przed bieżącym.źródło