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.
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.
Odpowiedzi:
Wydaje mi się, że najprostszym sposobem jest wpisanie ls -l
lub ls -lh
podanie 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 -lR
lubls -lhR
Więcej informacji na temat ls
można znaleźć, wpisującman ls
Aktualizacja:
Następujące polecenie, jak zaproponował Lekensteyn, prawdopodobnie wykona zadanie:
du -h --max-depth=1 <folder>
-h
jest czytelny dla ludzi,
--apparent-size
to kolejny sposób wyświetlania rozmiarów, ponieważ już podany
--max-depth
jest poziom podfolderów, do którego chcesz zejść.
apt-get install ncdu
Jest również interaktywny, więc jeśli chcesz sprawdzić podfolder, po prostu GÓRA, DÓŁ i Enter do niego.
Aby uzyskać całkowity rozmiar katalogu i wszystkich dzieci
du -hs directory/*
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.
-h
pokaż rozmiar w czytelny dla człowieka sposób, np.tree -s
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.
Rozwiązaniem terminalowym jest du
polecenie:
du --all --human-readable --apparent-size
(skrótowa: du -ah --apparent-size
)
du
wyś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.--max-depth=1
--max-depth=1
można go skrócić -d1
.
Wydaje się, że to załatwia sprawę, gdy w grę wchodzą linki uproszczone.
ls -LRlh
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.
Kolejne rozwiązanie terminalowe z find
sortowaniem (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