Otrzymuję dane wyjściowe z du -h
następujących:
103M ./.wine/drive_c/windows/mono/mono-2.0/lib/mono
103M ./.wine/drive_c/windows/mono/mono-2.0/lib
129M ./.wine/drive_c/windows/mono/mono-2.0
129M ./.wine/drive_c/windows/mono
362M ./.wine/drive_c/windows
545M ./.wine/drive_c
Chciałbym pokazać tylko folder, w którym można najwięcej akcji, którym jest folder ./.wine/drive_c/windows/mono/mono-2.0/lib/mono
Czy istnieje jakiś sposób na usunięcie folderu nadrzędnego, jeśli folder podrzędny jest odpowiedzialny za większość miejsca na dysku?
Ustawienie pokazujące tylko foldery liści może załatwić sprawę lub ustawienie odejmowania wielkości wszystkich podfolderów od folderu nadrzędnego podczas obliczania rozmiaru folderu nadrzędnego.
disk-usage
Eoghan
źródło
źródło
Odpowiedzi:
Jeśli używasz GNU du, możesz użyć opcji
-S
lub--separate-dirs
, aby nie uwzględniać rozmiaru podkatalogów podczas obliczania zużycia dla elementu nadrzędnego.Twoje
du
polecenie może nie obsługiwać tej opcji.Możesz użyć tej pary z sortowaniem, aby uzyskać największe pojedyncze katalogi (zakładając narzędzia GNU):
źródło
Osobiście po prostu łączę to z mocą GNU sort:
Spowoduje to, że rozmiary zostaną posortowane w formacie czytelnym dla człowieka. Na przykład:
Od
man sort
:Nadal pokazuje te, na których ci nie zależy, ale teraz bardzo łatwo jest znaleźć te, które robisz.
źródło
545M ./.wine/drive_c
na górze listy, mimo że zawiera tylko foldery i nie ma plików, i utrudnia zobaczenie, jak przestrzeń jest rozdzielana między (rekurencyjnymi) podfolderami drive_c, ponieważ nie nie pojawiają się kolejno na liście.Jeśli szukasz przejrzystego widoku, polecam
durep
pakiet.Przykładowe dane wyjściowe:
Użyj
-td
parametru, aby określić maksymalną głębokość, oraz-hs
parametru, aby określić minimalny rozmiar folderu, który będzie wyświetlany w wynikach.źródło
Naprawdę nie jestem pewien, czy to jest to, co chcesz, ale można rozebrać katalogów nadrzędnych za pomocą GNU
find
„s-execdir
:Ta
-execdir
opcja jest podobna,-exec
ale wykonuje polecenie podane w podkatalogu, w którymfind
znalazł plik.źródło
Jeśli korzystasz
du
z ustalonej głębokości, np.du -m -d 2 .
Możesz po prostu zamaskować linie, które nie osiągają maksymalnej głębokości, w następujący sposób:W tym przypadku chciałem mieć głębokość 2 katalogów, więc zachowałem wyniki tylko z 3 polami zdefiniowanymi
awk
słowem kluczowymNF
po określeniu"/"
jako separatora pól na początku.źródło
Oba działają dla mnie:
źródło