Aby wyświetlić listę plików w dowolnym miejscu /tmp
, posortowane według rozmiaru:
find /tmp -type f -exec du -k {} + | sort -k1n -k2
Aby wyświetlić listę plików i drzew katalogowych bezpośrednio poniżej /tmp
, posortowane według rozmiaru:
du -k /tmp/..?* /tmp/.[!.]* /tmp* 2>/dev/null | sort -k1n -k2
Aby wyświetlić listę wszystkich plików i drzew katalogowych w dowolnym miejscu poniżej /tmp
, posortowane według rozmiaru:
du -ak /tmp | sort -k1n -k2
(Przykład ilustrujący różnicę między trzema poleceniami: jeśli istnieje plik /tmp/dir/file
, lista pierwszych poleceń /tmp/dir/file
, druga lista /tmp/dir
i trzecia lista oba).
Wszystkie powyższe polecenia pokazują rozmiary w kilobajtach. Podczas gdy GNU du może generować rozmiary „czytelne dla człowieka” (z mnożnikami k, M, G itp.), Sortowanie ich to inna sprawa. Wystarczającej ilości aktualnych coreutils GNU (≥7.4) może to zrobić: wystarczy wymienić du -k
z du -h
i sort -k1n -k2
z sort -k1h -k2
. W przeciwnym razie oto prosty skrypt awk do konwersji na przyrostki (zaokrąglanie w dół); po prostu potokuj sort
wyjście powyżej.
awk -vFS='\t' -vOFS='\t' '{
if ($1) $1 = substr($1,1,(length($1)-1)%3+1)
substr("kMGTPEZY",(length($1)-1)/3+1,1);
print}'