GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso ordinare du -h output per dimensione

Soluzione 1:

A partire da GNU coreutils 7.5 rilasciato nell'agosto 2009, sort consente un -h parametro, che consente suffissi numerici del tipo prodotto da du -h :

du -hs * | sort -h

Se stai usando un ordinamento che non supporta -h , puoi installare GNU Coreutils. Per esempio. su un vecchio Mac OS X:

brew install coreutils
du -hs * | gsort -h

Da sort manuale:

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

Soluzione 2:

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

Soluzione 3:

@Douglas Leeder, un'altra risposta:ordina l'output leggibile dall'uomo da du -h usando un altro strumento. Come 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)}<>;'

Diviso su due linee per adattarsi al display. Puoi usarlo in questo modo o trasformarlo in una riga, funzionerà in entrambi i modi.

Uscita:

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

MODIFICA: Dopo alcuni giri di golf su PerlMonks, il risultato finale è il seguente:

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

Soluzione 4:

C'è uno strumento immensamente utile che uso chiamato ncdu che è progettato per trovare quelle fastidiose cartelle e file ad alto utilizzo del disco e rimuoverli. È basato su console, veloce e leggero, e ha pacchetti su tutte le principali distribuzioni.

Soluzione 5:

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

Linux
  1. Come ricordare come utilizzare il reindirizzamento?

  2. È possibile personalizzare la dimensione del carattere di Grub?

  3. Come ordinare un file sul posto

  4. Come posso monitorare il disco io?

  5. Come posso vedere l'output di dmesg mentre cambia?

Come usare du Command in Linux

Come posso filtrare i risultati univoci dall'output di grep?

Come posso ordinare ls per proprietario e gruppo?

Come posso fare in modo che ls mostri prima i dotfile?

Come può sembrare che un processo abbia un nome diverso nell'output di ps?

Come ordinare l'output di ps in base all'ora di inizio del processo?