Quais comandos eu preciso para o Linux's ls
mostrar o tamanho do arquivo em MB?
O ls -l --block-size=M
lhe dará uma longa listagem de formatos (necessária para ver o tamanho do arquivo) e round file sizes up até o MiB mais próximo.
Se você quiser unidades MB (10^6 bytes) em vez de unidades MiB (2^20 bytes), utilize --block-size=MB
em vez disso.
Se você não'não quer o sufixo M
anexado ao tamanho do arquivo, você pode utilizar algo como --block-size=1M
. Obrigado Stéphane Chazelas por sugerir isto.
Se você simplesmente quer tamanhos de arquivo em "reasonable" unidades, ao invés de specificamente megabytes, então você pode usar -lh
para obter uma longa listagem em formato e humano legível apresentação do tamanho do arquivo. Isso irá utilizar unidades de tamanho de arquivo para manter os tamanhos de arquivo apresentados com cerca de 1-3 dígitos (então você'verá tamanhos de arquivo como 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
e assim por diante.
O parâmetro --block-size' está descrito na página de manual para ls;
man ls' e procura por `SIZE'. Ele permite outras unidades além de MB/MiB também, e pelo aspecto dele (eu não tentei'tentei isso) tamanhos de blocos arbitrários também (assim você poderia ver o tamanho do arquivo como um número de blocos de 429 bytes, se quiser).
Note que tanto --block-size' como
-h' são extensões GNU no topo do Open Group's ls
, então isso pode não funcionar se você não't tiver um espaço de usuário GNU (o que a maioria das instalações Linux tem). O ls
do GNU Coreutils 8.5 suporta --block-size e -h, como descrito acima. Obrigado ao kojiro por apontar isso.
O ls -lh
dá tamanhos de arquivo legíveis por humanos, formato longo.
Ele utiliza sufixos k, M, G e T (ou nenhum sufixo para bytes) conforme necessário para que o número permaneça pequeno, por exemplo 1.4K
ou 178M
.
-h
é uma extensão do GNU coreutils, não um POSIX de base.
Note que isto não'não responde à pergunta exactamente como foi feita. Se você quiser tamanhos estritamente em MiB mesmo para arquivos pequenos ou gigantescos, Michael Kjörling'a resposta do GNU coreutils ls
.