Di quali comandi ho bisogno per Linux ls
per mostrare la dimensione del file in MB?
Di quali comandi ho bisogno per Linux ls
per mostrare la dimensione del file in MB?
Risposte:
ls -l --block-size=M
ti fornirà un elenco di formati lunghi (necessario per visualizzare effettivamente la dimensione del file) e dimensioni arrotondate del file fino al MiB più vicino.
Se si desidera unità MB (10 ^ 6 byte) anziché MiB (2 ^ 20 byte), utilizzare --block-size=MB
invece.
Se non si desidera che il M
suffisso sia allegato alla dimensione del file, è possibile utilizzare qualcosa di simile --block-size=1M
. Grazie Stéphane Chazelas per avermelo suggerito.
Se si desidera semplicemente dimensioni di file in unità "ragionevoli", piuttosto che specificamente megabyte , è possibile utilizzare -lh
per ottenere un elenco di formati lunghi e una presentazione di dimensioni dei file leggibili . Questo userà le unità di dimensioni del file per mantenere le dimensioni dei file presentati con circa 1-3 cifre (così vedrete le dimensioni dei file come 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
e così via.
Il --block-size
parametro è descritto nella pagina man di ls; man ls
e cerca SIZE
. Permette anche unità diverse da MB / MiB e, a quanto pare (non l'ho provato), anche dimensioni di blocchi arbitrarie (quindi puoi vedere le dimensioni del file come un numero di blocchi da 429 byte se vuoi per).
Si noti che entrambi --block-size
e -h
sono estensioni GNU in cima Open Groupls
, quindi questo non può funzionare se non si dispone di uno spazio utente GNU (che la maggior parte delle installazioni Linux fanno). La ls
da GNU Coreutils 8.5 supporta --block dimensioni e -h come sopra descritto. Grazie a Kojiro per averlo segnalato.
ls
? Standardls
non ha questo argomento. Con l' estensione xsi ls
è presente il -s
flag, che indica il numero di blocchi, ma non esiste un flag standard --block-size
.
--block-size
partire da coreutils 8.5, che è ciò che è installato sul mio sistema Debian Squeeze. Dal momento che la domanda era esplicitamente per Linux e non specificava nient'altro, ammetto di aver ipotizzato una terra utente incentrata sui coreutils GNU. Ho aggiornato la risposta per chiarire questo. (Inoltre, Open Group non sembra avere nemmeno -h. :)
)
--block-size
è un'estensione GNU. Sospetto che Mac OS X non usi GNU ls
.
ls -lh
fornisce file di dimensioni leggibili, formato lungo.
Esso utilizza k, suffissi M, G e T (o nessun suffisso per byte) come necessario in modo che il numero rimane piccolo, ad esempio 1.4K
o 178M
.
-h
è un'estensione GNU coreutils, non POSIX di base.
Nota che questo non risponde alla domanda esattamente come è stato chiesto. Se vuoi dimensioni rigorosamente in MiB anche per file piccoli o giganteschi, la risposta di Michael Kjörling lo fa per i coreutils GNUls
.
h
è molto più facile da scrivere rispetto a--block-size=M
ls -l
affatto se non gli umani? : p
ls -l
output è il modo sbagliato di fare le cose, il 99% delle volte. unix.stackexchange.com/questions/128985/why-not-parse-ls . Quell'1% è generoso, ed è praticamente limitato a una riga che scrivi in modo interattivo per un solo utilizzo, non a uno script che userai ripetutamente su nomi di file sconosciuti.
ls -lhS
ordina per dimensione, in formato leggibile dall'uomo
ls -lh
risposta per i motivi per cui questo non risponde davvero alla domanda.
E questa è l'opzione per elencare tutto in un ordine di directory in base alla dimensione del file (ancora leggibile) in ordine crescente.
ls -lSrh
--block-size=M
unM
suffisso accanto alla dimensione e puoi usarlo--block-size=1M
per ometterlo. Vale anche la pena ricordare che è necessario GNU ls per questo (la maggior parte dei sistemi Linux non incorporati avrà GNU ls).