Quale comando stamperà le dimensioni di tutti i file e le directory nella directory tmp (compresi quelli nascosti) e le ordinerà per dimensioni dal
dal più grande al più piccolo in un formato leggibile dall'uomo (ad es. 2 GB)?
L'output potrebbe essere il seguente:
file.mpg 2GB
file.avi 1.8GB
.backtup 1.7 GB (this is directory)
Ho provato a usare ls
e du
comandi ma non è stato possibile trovare gli interruttori giusti.
Risposta accettata:
Ecco una soluzione rapida, usa du + sort. Prova questo:
du -smc * | sort -n
Questo ignorerà i file nascosti, ma questa è un'altra soluzione semplice:
du -smc .[^.] .??* * | sort -n
Ciò potrebbe causare avvisi se uno o più dei modelli precedenti non corrispondono a un file. Il primo modello .[^.]
corrisponde a tutti e due i nomi di file di caratteri che iniziano con . ad eccezione di .., il secondo modello, .??*
corrisponde a tutte e tre le lettere o più nomi di file che iniziano con . e * corrisponde a tutti i file che non iniziano con . Per un elenco più sofisticato come trovare tutti i file più grandi di X in un intero filesystem o mantenere un elenco di crescita del filesystem, ho alcuni script di shell fai-da-te che ho scritto e che posso condividere se sei interessato.