jak używać du, aby zobaczyć pliki większe niż rozmiar progowy

9

Mam kilka sytuacji, w których nie widzę nic na stronach du man.

1) Chcę zobaczyć pliki w podkatalogu, które są większe niż określony rozmiar. 2) Używam du -sh> du_output.txt Widzę dane wyjściowe zgodnie z opisem dla opcji -s i -h jakkolwiek bardziej interesuje mnie to, czy dane wyjściowe są w formacie, który powiedzą na przykład

 dir0--->dir1-->dir3-->dir4 
       |             | 
       ->dir2        |-file1
                     |-file2

jeśli powyższe informacje dotyczą układu katalogów i chcę zobaczyć rozmiar poszczególnych katalogów we wszystkich podkatalogach, to co mogę zrobić (głębokość każdego podkatalogu jest zmienna)

Więź
źródło

Odpowiedzi:

5

Lubię narzędzie gt5 . Wykorzystuje dane wyjściowe dui tworzy możliwą do przeglądania listę katalogów i ich rozmiarów oraz używa przeglądarki tekstowej, takiej jak łącza do wyświetlania informacji.

Oba programy są dostępne w repozytoriach Ubuntu: gt5 i linki .

zrzut ekranu gt5

Wstrzymano do odwołania.
źródło
Dzięki, GT5 wygląda bardzo interesująco. Zamierzam go teraz zainstalować. Oczywiście jest też „baobab” dla GUI.
SabreWolfy
22

Aby wyświetlić tylko foldery o rozmiarze większym niż 1 GB:

du -h --threshold=1G

Możesz również zamówić według rozmiaru, aby łatwo znaleźć największe.
du -h --threshold=1G | sort -h

(Działa na: Ubuntu / Mint.
Nie działa na: OSX lub RHEL 6.2)

Mtl Dev
źródło
2
Szkoda, --thresholdże nie działa na OS X.
Franklin Yu
Również nie działa na RHEL 6.2
Matthew Moisen
Również w Ubuntu napisano, że sort -hnhn są niezgodne.
Scott Stafford,
1
@ScottStafford Dzięki za to, literówka, naprawione. Powinienem był przeczytaćsort -h
Mt Dev Dev,
jak wyświetlić pliki powyżej 500 KB? (zamiast folderów)
Alexander Mills,
12

Zamiast tego użyj polecenia find. Poniższy przykład pokazuje wszystkie pliki, które są większe niż 10 megabajtów:

find -size +10M

Możesz użyć du z find w taki sposób, aby zobaczyć rozmiar każdego pliku:

find -size +10M -exec du -sh {} \;
Carson
źródło
0

find /path/to/folder -size +100k

Nie jest jasne, czy chcesz zobaczyć rozmiar poszczególnych plików, które są większe niż pewna wartość, czy też chcesz, aby foldery były większe niż jakaś wartość.

SabreWolfy
źródło
obie rzeczy. Zasadniczo muszę sporządzić raport i przedstawić go na dwa sposoby, na które wskazałeś.
Bond
Myślę, że wspomniane powyżej gt5 może być tym, czego szukasz.
SabreWolfy
0

Uważam, że odpowiedź Mtl Dev pasuje do tego pytania. Odkąd Bond otworzył ten wątek z tagami „linux” i „ubuntu-10.04”.
Znowu du -h --threshold=1G(po którym | sort -hopcjonalnie) działa doskonale w Ubuntu.

Chociaż Bond tak powiedział,

Nic nie widzę na stronach du man.

na stronie podręcznika znajdują się dwa wiersze, patrz poniżej.

-t, --threshold = SIZE
wyklucza wpisy mniejsze niż SIZE, jeśli są dodatnie, lub wpisy większe niż SIZE, jeśli są ujemne

Jeszcze jedno, myślę, że dokładna linia poleceń, której chce Bond, to coś takiego,

find . -mindepth 2 -type d | xargs du -sh -t 1G

Gdy -mindepth 1twierdzi, że powinna zawierać bieżącą ścieżkę, -mindepth 2będzie działać na żądanie.

Poniżej znajduje się demonstracja popularnego zestawu danych Lisa .

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G | sort -h
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations
4.0G    ./negatives/negativePics
6.0G    ./experiments/training

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G
4.0G    ./negatives/negativePics
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
6.0G    ./experiments/training
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 3G
4.0G    ./negatives/negativePics
6.0G    ./experiments/training
David Jung
źródło