2010-09-20 11:20:48 +0000 2010-09-20 11:20:48 +0000
163
163

ls-command: come si visualizza la dimensione del file in megabyte?

In Unix (Tru64), come faccio a far sì che il comando ls mostri la dimensione del file in megabyte? Attualmente sono in grado di mostrarla in byte utilizzando i seguenti comandi:

ls -la

Risposte (9)

250
250
250
2010-09-20 11:22:20 +0000

Forse -h è sufficiente per voi:

-h Se usato con l'opzione -l, usate i suffissi delle unità: Byte, Kilobyte, Megabyte, Megabyte, Gigabyte, Terabyte e Petabyte per ridurre il numero di cifre a tre o meno usando la base 2 per le dimensioni.

ls -lah
``` &001 


Consigli generali: Utilizzare `man commandname` per leggere il manuale/aiuto di un certo comando, ad esempio qui `man ls`.
32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M stampa le dimensioni in Megabyte ma mostra 1MB anche per tutto ciò che è inferiore a 1 MB. Non sono sicuro se questa opzione sia accettabile nella vostra versione UNIX di ls, però.

In realtà ls -lh stampa anche le dimensioni in Gigabyte se il file è abbastanza grande (Beh comunque: su Linux 64bit questo funziona :>)

Su un nodo laterale: du -sh * stampa anche le dimensioni della directory nella directory corrente.

15
15
15
2010-09-20 13:36:26 +0000

Dovrete usare awk per fare i conti per voi:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

Questo non influenzerà l'output per i file che sono più piccoli di mega.

Potrebbe essere necessario regolare il numero di campo per adattarlo al modo in cui il vostro ls è disposto. Potete cambiare mega a “1000000” se lo preferite.

Questo stamperà più cifre decimali di quanto probabilmente desiderate. Potreste implementare una funzione di arrotondamento.

13
13
13
2012-10-14 08:27:30 +0000

prova ls -shR per il formato ricorsivo leggibile dall'uomo.

5
5
5
2010-09-20 16:36:06 +0000

du -sm filename.txt

5
5
5
2015-04-19 22:57:53 +0000

Si può anche digitare

du -sh ./*
``` &001 


Questo elencherà tutte le cartelle nella directory corrente, con formato leggibile dall'uomo, comprese le dimensioni dei file più familiari in Kb, Mb, Gb.
2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

Per il parametro --block-size:

  • utilizzare MB per 10^6
  • utilizzare solo M per 2^20
2
2
2
2015-06-13 07:36:58 +0000

Se si vuole solo la dimensione di un file specifico, allora il comando, una banale estrapolazione delle risposte precedenti, è:

ls -sh _filename(s)_
``` ```
753M myfilename

-s è per la dimensione e l’h è per Human Readable (come già detto più volte).

L'output sarà simile a questo:

&001 &001

Se si tralascia il nome(i) del file, elencherà la directory, ponendo la dimensione di ogni file accanto al suo nome - non diversamente da quanto fa ls -la quando viene invocato senza argomenti relativi al nome del file.

Spero che questo aiuti.

0
0
0
2016-03-10 17:34:39 +0000

Se siete interessati solo alla dimensione del file, e non dovete usare il comando ls, provate 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 bisogno di analizzare nulla.