Risposte:
Forse -hè sufficiente per te:
-h
Se utilizzato con l'opzione -l, utilizzare i suffissi unità: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte e Petabyte per ridurre il numero di cifre a tre o meno utilizzando la base 2 per le dimensioni.
ls -lah
Consiglio generale: usare man commandnameper leggere il manuale / aiuto di un determinato comando, ad es man ls. Qui .
ls --block-size=Mstampa le dimensioni in Megabyte ma mostra 1 MB anche per qualsiasi valore inferiore a 1 MB. Tuttavia, non sono sicuro che questa opzione sia accettabile nella tua versione UNIX di ls.
In realtà ls -lhstampa anche dimensioni in Gigabyte se il file è abbastanza grande (Beh comunque: su Linux a 64 bit questo funziona:>)
Su un nodo laterale: du -sh *stampa anche le dimensioni della directory nella directory corrente.
ls -hsenso dopo che un file ha superato 1 GB, quindi uso questo comando in un ciclo di 1 secondo:while true ; do ls -al --block-size=M ; sleep 1 ; done
Dovrai usare awkper fare la matematica per te:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Ciò non influirà sull'output per file di dimensioni inferiori a mega.
Potrebbe essere necessario modificare il numero del campo in modo che corrisponda al modo in lscui è disposto. Puoi modificare mega"1000000" se questa è la tua preferenza.
Questo stamperà più decimali di quanto tu probabilmente desideri. È possibile implementare una funzione di arrotondamento.
ls -lho ls --block-size=M, ma AWK è molto utile!
prova ls -shRper un formato ricorsivo leggibile dall'uomo.
-hTru64 e lo ha fatto più di due anni prima che questa risposta fosse pubblicata.
Se vuoi solo la dimensione di un solo file specifico, il comando, una banale estrapolazione delle risposte precedenti, è:
ls -sh nome file
-sè per dimensioni e hè per Human Readable (come menzionato sopra alcune volte).
L'output sarà simile al seguente:
753M myfilename
Se si omettono i nomi dei file, verranno elencati la directory, posizionando le dimensioni di ciascun file accanto al suo nome, non diversamente da ciò che ls -laviene fatto quando viene invocato senza argomenti di nome file.
Spero che sia di aiuto.
-hopzione non esiste lssu quel sistema.
ls -l --block-size=MB
Per il --block-sizeparametro:
MBper 10 ^ 6Mper 2 ^ 201MB . Per questo motivo ho scoperto ls -l --block-size=kBdi essere più utile.
Se ti interessa solo la dimensione del file e non devi utilizzare il lscomando, prova quanto segue:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
Questo stamperà la dimensione del file senza la necessità di analizzare nulla.