Znajdowanie, co zajmuje całą przestrzeń w * nix


21

Która sekwencja poleceń powie mi, które pliki są największe, zaczynając od określonego katalogu, w tym wszystkich podkatalogów? Chcę wiedzieć, gdzie poszła cała przestrzeń.

Najlepiej po prostu za pomocą zwykłych poleceń uniksowych.

Jeśli to możliwe, staraj się zachować zgodność z Sun OS 5.10 (być może oprócz zwykłych odpowiedzi na Linuksa, a nie jako zamiennik, aby był tak ogólny, jak to możliwe).


Istnieją dwa głosy na SU i dwa na SF. Który jest bardziej odpowiedni? Moim zdaniem może to należeć do jednego z nich.
mmyers

5
@mmyers: dał to SU ... SU potrzebuje prawdziwych pytań!
Shog9

1
Ale SU ma już bardzo podobne pytanie! superuser.com/questions/9847/…
Jonik

Odpowiedzi:


11

Osobiście lubię używać, du -sh *aby zobaczyć, jak duży jest każdy katalog w bieżącym katalogu.

Ponadto można sortować mieć większe foldery pierwszy: du -shx * | sort -hr. Dla du:

  • -s, --summarize: wyświetla tylko sumę dla każdego argumentu
  • -h, --human-readable: rozmiary wydruku w formacie czytelnym dla człowieka (np. 1K 234M 2G)
  • -x, --one-file-system: pomiń katalogi w różnych systemach plików

Dla sort:

  • -h, --human-numeric-sort: porównaj liczby czytelne dla ludzi (np. 2K 1G)

To jest rzeczywiście bardzo przydatna przy niewielkiej modyfikacji: du -s * | sort -nr.
Alex Budovski

5
Możesz zachować rozmiary plików w formacie czytelnym dla człowieka za pomocą du -sh * | sort -hr.
Jorge Israel Peña

du -shx * | sort -hrjest dobry, ale zwraca tylko bieżący katalog. Jak miałbym to zrobić w całym systemie? I jak mogę wykluczyć wszystko poniżej 100 MB? Dzięki.
tem

To zależy od jego wywołania w powłoce. To *właśnie sprawia, że ​​ma zastosowanie do wszystkiego w bieżącym katalogu, ale równie łatwo możesz zmienić to na np. some/other/path/*Lub jeśli chcesz po prostu uruchomić go w jednym katalogu jako całości, to pomiń *wzorzec glob. Jeśli chodzi o odfiltrowywanie rzeczy, może zadaj osobne pytanie.
Jorge Israel Peña

Aby uruchomić go rekurencyjnie w całym systemie, możesz sparować go z findkatalogiem głównym katalogu i użyć jego -execparametru do wywołania du. Sam findprogram prawdopodobnie może filtrować według rozmiaru pliku za pomocą czegoś takiego size +100M. Zobacz to pytanie . Może coś takiego find / -size +100M -exec du -sh {} \; | sort -hr, choć to nie zostało przetestowane.
Jorge Israel Peña

13

ncdu

Jest po prostu świetny: CLI, oparty na ncurses, szybki, prosty. Zainstaluj za pomocą sudo apt install ncdu.

wprowadź opis zdjęcia tutaj


5

w zasadzie możesz użyć polecenia du. coś takiego

du -a /home | sort -rn |head -1

więcej informacji znajdziesz na stronie podręcznika lub info du.

Lub możesz użyć GNU find.

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  

Czy „find” w systemie Sun OS 5.10 ma alternatywę, której można użyć do -printf?
Alex Budovski,

Ponadto, czy jest jakiś sposób, aby uzyskać pierwsze polecenie (du ...), aby odfiltrować katalogi? Interesują mnie tylko pliki, tak jak w przypadku drugiego polecenia.
Alex Budovski,

5

Nie linia poleceń, ale wciąż unix'y: kdirstat

Używam go, aby dowiedzieć się, gdzie poszła cała przestrzeń i podoba mi się to znacznie bardziej niż Disk Usage Analyzer (alias Baobab). Jest to jedna z niewielu aplikacji KDE, które są tolerowane w moim środowisku GNOME ;-)

wprowadź opis zdjęcia tutaj

Według kdirstat.sourceforge.net działa na Solarisie.

Chociaż KDirStat jest programem KDE, działa dobrze na każdym pulpicie X11, tj. Działa na Linuksie, BSD i wielu innych systemach uniksowych (Solaris, HP-UX, AIX, ...).


W Ubuntu: k4dirstat i qdirstat. Ostatni jeszcze aktualny. Nie podoba mi się, że pozwalają na usuwanie folderów
develCuy


3
du -a | sort -n

wykonałby zadanie. Używając baobabu (jest to część gnome utils, więc prawdopodobnie jest już zainstalowany w twoim systemie), otrzymujesz całkiem niezły graficzny rozkład zajętej przestrzeni.


Czy jest jakiś powód, aby używać -g zamiast -n? „Użyj tej opcji tylko wtedy, gdy nie ma alternatywy; jest znacznie wolniejsza niż --numeric-sort (-n) i może utracić informacje podczas konwersji na zmiennoprzecinkowe.” Gnu.org/software/coreutils/manual/html_node/…
stamtąd

@therefromhere: korzystałem ze strony podręcznika, która nie jest tak wyczerpująca jak strona, do której linkujesz. Właśnie wybrałem pierwszą opcję, która zadziałała w konkretnym przypadku. Ale masz rację; Zredagowałem moją odpowiedź. Dzięki!
balpha

3

Analizator zużycia dysku

Jeśli używasz dystrybucji opartej na Debian / Ubuntu, w repozytoriach dostępnych jest kilka GUI, które można znaleźć za pomocą synaptic.

wprowadź opis zdjęcia tutaj


3
du . -ha | sort -hr
  • -a, --all: zapisuje liczby dla wszystkich plików, nie tylko katalogów
  • -h, --human-readable: rozmiary wydruku w formacie czytelnym dla człowieka (np. 1K 234M 2G)

1
Uważam, że wymawianie tego polecenia jest bardzo zabawne. To też brzmi zabawnie.
jtbandes

2
-1, to źle. „-H” w poleceniu du przerywa sortowanie.
stamtąd

1
To nie jest złe, po prostu nieprzenośne. -h jest GNUizmem. Zamiast tego użyj -k w Sun OS.
Ludwig Weinzierl

+ Ludwig Nie sądzę, że zrozumiałeś. Dodanie -h sprawia, że ​​liczby są czytelne dla ludzi, dlatego nie są już liczbami, które mogą być używane przez polecenie sortowania. np. rzeczy zostaną posortowane w ten sposób: „760K 784M 788K 860K 944K 985M” Powinno być du -ha | sort -hrlub du -ha | gsort -hr(na osxie po zainstalowaniu podstawowych narzędzi)
Gerry

2

Dowódca północy

Jeśli chcesz wyświetlić listę z ładnym GUI i opcjami nawigacji, zainstaluj Midnight Commander ( mcw większości menedżerów pakietów) i zaznacz „pokaż rozmiary katalogów” w menu poleceń. Możesz także Ctrl+ space.

wprowadź opis zdjęcia tutaj

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.