GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu seřadit výstup du -h podle velikosti

Řešení 1:

Od GNU coreutils 7.5 vydaného v srpnu 2009, sort umožňuje -h parametr, který umožňuje číselné přípony typu vytvořeného du -h :

du -hs * | sort -h

Pokud používáte řazení, které nepodporuje -h , můžete nainstalovat GNU Coreutils. Např. na starším Mac OS X:

brew install coreutils
du -hs * | gsort -h

Od sort manuál:

-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)

Řešení 2:

du | sort -nr | cut -f2- | xargs du -hs

Řešení 3:

@Douglas Leeder, ještě jedna odpověď:Seřaďte lidsky čitelný výstup z du -h pomocí jiného nástroje. Jako Perl!

du -h | perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/;
return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'

Rozdělte na dva řádky, aby se vešly na displej. Můžete ji použít tímto způsobem nebo z ní udělat jednovrstvou, bude to fungovat jakkoli.

Výstup:

4.5M    .
3.7M    ./colors
372K    ./plugin
128K    ./autoload
100K    ./doc
100K    ./syntax

UPRAVIT: Po několika kolech golfu v PerlMonks je konečný výsledek následující:

perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'

Řešení 4:

Existuje nesmírně užitečný nástroj, který používám, nazvaný ncdu, který je navržený pro hledání těch otravných složek a souborů s vysokou spotřebou disku a jejich odstraňování. Je založen na konzoli, je rychlý a lehký a má balíčky na všech hlavních distribucích.

Řešení 5:

du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh

Linux
  1. Jak třídit soubor na místě

  2. Jak mohu vynutit pouze relativní cesty ve výstupu hledání?

  3. Jak mohu odfiltrovat jedinečné výsledky z výstupu grep?

  1. Jak mohu seřadit ls podle vlastníka a skupiny?

  2. Jak mohu vidět výstup dmesg, když se mění?

  3. Jak seřadit tento výstup 1,10,11..2

  1. Jak vypsat nebo seřadit všechny soubory podle velikosti v Linuxu

  2. Jak seřadit výstup Du podle velikosti?

  3. Jak mohu skrýt výstup shellové aplikace v Linuxu?