Come posso ordinare tutti i file per dimensione in una directory?


48

Come posso visualizzare i file in una directory unix ordinata in base alla loro dimensione leggibile, passando dal più grande al più piccolo?

Provai

du -h | sort -V -k 1 

ma non sembra funzionare.


Potete chiarire se vi aspettate che le dimensioni della sottodirectory compaiano anche nell'output e anche se state cercando la dimensione apparente dei file o la dimensione effettiva che usano sul disco?
jlliagre,

Risposte:



33
$ ls -lhS

-l     use a long listing format
-h     with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-S     sort by file size

16

Se hai la sortversione appropriata puoi semplicemente usare:

du -h | sort -rh

il mio è

$ sort --version
sort (GNU coreutils) 8.12

4

ls -Snon era un'opzione sul sistema operativo per me.
ls -l | sort -k 5nr
Funzionava quanto segue: Loro "chiave" era di specificare la colonna da ordinare (ottenerla, la "chiave"). Sopra sto specificando il -k 5nrsignificato ordinamento sulla 5a colonna che è la dimensione (5) valutata come un numero (n) in ordine decrescente (n)

Documentazione di ordinamento di riferimento per ulteriori informazioni


4

du -ha | sort -h

du : stima l'utilizzo del disco del file.

-h : for human
-a : all files

sort : ordina le righe di testo.

-h : for human

man du; man sortper più. Funziona per me su Ubuntu v15.


1

Ho ottenuto questo per funzionare per me:

ls -l | sort -g -k 5 -r

Quale (ho appena capito) è lo stesso di:

ls -lS

0

A differenza di ls -Squesto, gestirà correttamente i file sparsi:

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.