Jak wyświetlić rekurencyjne rozmiary plików i katalogów w katalogu?


50

Jak wyświetlić listę wszystkich plików w katalogu i ich rekurencyjne rozmiary?

---edytować

Chcę, aby rozmiary „zwinięte” do katalogów nadrzędnych w wymienionym katalogu. Nie chcę widzieć katalogów potomnych ani ich zawartości ani rozmiarów.


1
Masz na myśli, że chcesz zobaczyć całkowity rozmiar (sumę) wszystkich plików w folderze, np. Klikając prawym przyciskiem myszy folder na pulpicie i wybierając „właściwości”?
— Pavlos G.,

Szukasz oprogramowania, które pomaga znaleźć duże pliki, lub coś, co pozwala uzyskać (składane) drzewo plików?
— Lekensteyn,

Cześć @Pavlos G - Mam na myśli sumę dla każdego z katalogów w katalogu, w którym aktualnie jestem - nie sumę dla całego katalogu.
— hawkeye

@JG - Sprawdź moją aktualizację ;-)
— Pavlos G.

Odpowiedzi:


53

Wydaje mi się, że najprostszym sposobem jest wpisanie ls -llub ls -lhpodanie rozmiaru pliku w formacie czytelnym dla człowieka (KB, MB itp.).

Jeśli „rekurencyjnie” oznacza listę wszystkich kolejnych folderów, np .:

/ foo /
/ foo / bar / ....

Następnie należy również dodać parametr R, taki jak ls -lRlubls -lhR

Więcej informacji na temat lsmożna znaleźć, wpisującman ls

Aktualizacja:

Następujące polecenie, jak zaproponował Lekensteyn, prawdopodobnie wykona zadanie:

du -h --max-depth=1 <folder>

-hjest czytelny dla ludzi,
--apparent-sizeto kolejny sposób wyświetlania rozmiarów, ponieważ już podany
--max-depthjest poziom podfolderów, do którego chcesz zejść.


Czego używać do maksymalnej głębokości? -1?
— dylanh724,

61
apt-get install ncdu

wprowadź opis zdjęcia tutaj

Jest również interaktywny, więc jeśli chcesz sprawdzić podfolder, po prostu GÓRA, DÓŁ i Enter do niego.


Właśnie tego szukałem. Dziękuję Ci bardzo!
— Mathlight

Być może najbardziej niesamowita rekomendacja oprogramowania, jaką kiedykolwiek miałem
— SomethingSomething

powinna to być zatwierdzona odpowiedź
— dvdmn

30

Aby uzyskać całkowity rozmiar katalogu i wszystkich dzieci

du -hs directory/*

Chciałbym przejść o jeden poziom niżej - rekurencyjne rozmiary wszystkich dzieci pierwszego poziomu.
— hawkeye

1
Zmienię moją odpowiedź. Musisz użyć katalogu du -h / *
— Richard Holloway,

17

Sprawdź także tree. Nie jest instalowany domyślnie, ale jest repozytoriami.

Przykład:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Więcej opcji można znaleźć na stronie man.


Czy należy pokazywać rozmiary?
— hawkeye

JG: -s pokazuje rozmiary.
— Richard Holloway,

1
Pokazuje rozmiar rekordu katalogu zamiast pełnego rozmiaru katalogu.
— Steven Lu

-hpokaż rozmiar w czytelny dla człowieka sposób, np.tree -s
— Eric Wang

15

Ponieważ nie wspominasz wyraźnie, że potrzebujesz rozwiązania opartego na terminalu, myślę, że baobab, znany również jako Disk Usage Analyzer, nie znajduje się na liście.

Jest domyślnie instalowany w Ubuntu i robi dokładnie to, co chcesz w ładnym graficznym interfejsie użytkownika z możliwością drążenia hierarchii katalogów.

Oprócz wyświetlania listy katalogów z ich rozmiarami, pokazuje także tabelę pierścieni lub mapę tremap użycia systemu plików, co jest niezwykle przydatne do wizualizacji katalogów, które zajmują najwięcej miejsca.

baobab Analizator zużycia dysku


7

Rozwiązaniem terminalowym jest dupolecenie:

du --all --human-readable --apparent-size

(skrótowa: du -ah --apparent-size)

duwyświetla użycie dysku dla każdego pliku i katalogu. Opcje wyjaśnione:

  • --all, -a- pokaż również rozmiary plików, nie tylko katalogów
  • --human-readable, -h- pokaż rozmiary w formacie czytelnym dla człowieka, np. 10K(10 kilobajtów), 10(10 bajtów)
  • --apparent-size - pokaż rzeczywisty rozmiar pliku, a nie rozmiary używane przez dysk.

Chciałem tylko dzieci pierwszego poziomu
— hawkeye,

2
@hawkeye na 1. poziom, z którego możesz korzystać--max-depth=1
— nikoskip

4
@nikoskip nice tip! Miło jest także wiedzieć, że --max-depth=1można go skrócić -d1.
— Lekensteyn,

jak zdobyć je wszystkie w malejącym porządku wielkości ..
— kRazzy R

jak wyświetlić zawartość i opróżnić: / dev / sda5 ext4 430G 381G 27G 94% / mój laptop ma mniej niż 1 miesiąc i jest tak pełny, że nie ma sensu
— kRazzy R

2

Wydaje się, że to załatwia sprawę, gdy w grę wchodzą linki uproszczone.

ls -LRlh

podana odpowiedź nie podała mi szczegółów dotyczących linków sim (ls -lhR), liczby podane obok niej nie odpowiadały również odpowiedniej wielkości każdej z wartości. Moja odpowiedź dała mi hierarchię ze zdefiniowaną strukturą drzewa i poprawną odpowiedzią… LUB czy odwołujesz się do innej głosowanej odpowiedzi?
— Mulki,

Głosowanie wycofane, wycofane. Proszę edytować i umieścić komentarz w odpowiedzi ... Dzięki za wyjaśnienie. ;-)
— Fabby,

1

Aby uzyskać posortowaną listę, umieść wszystko w MB i posortuj:

du -m * | sort -n

Lub użyj narzędzia takiego jak DiskReport, aby wygenerować raport pełnego drzewa dysków.


1

Kolejne rozwiązanie terminalowe z findsortowaniem (według rozmiaru pliku, kolumna 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

To nie pokazuje rozmiaru katalogu.
— muru
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.