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.