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

ls-command: como mostrar o tamanho do ficheiro em megabytes?

Em Unix (Tru64), como faço para que o comando ls mostre o tamanho do ficheiro em megabytes? Actualmente posso mostrá-lo em bytes usando os seguintes comandos:

ls -la

Respostas (9)

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

Talvez -h seja suficiente para si:

-h Quando utilizado com a opção -l, utilize sufixos unitários: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte e Petabyte a fim de reduzir o número de dígitos para três ou menos usando a base 2 para tamanhos.

ls -lah

General advice: Utilize os man commandname para ler o manual/ajuda de um determinado comando, por exemplo, aqui man ls.

32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M imprime os tamanhos em Megabytes mas mostra 1MB também para qualquer coisa abaixo de 1 MB. Não tenho a certeza se esta opção é aceitável na sua versão UNIX de ls, no entanto.

Na verdade ls -lh também imprime tamanhos em Gigabytes se o ficheiro for suficientemente grande (Bem de qualquer forma: em Linux 64bit isto funciona :>)

Num nó lateral: du -sh * imprime também tamanhos de directórios no directório actual.

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

Terá de usar awk para fazer as contas por si:

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

Isto não afectará a saída para ficheiros mais pequenos que mega.

Poderá ter de ajustar o número do campo para corresponder à forma como o seu ls está disposto. Pode alterar o mega para “1000000” se for essa a sua preferência.

Isto irá imprimir mais casas decimais do que provavelmente pretende. Pode implementar uma função de arredondamento.

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

try ls -shR para formato legível humano recursivo.

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

du -sm filename.txt

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

Também pode digitar

du -sh ./*

Isto irá listar todas as pastas do directório actual, com formato legível por humanos, incluindo os tamanhos de ficheiros mais familiares em Kb, Mb, Gb.

2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

Para o parâmetro --block-size:

  • utilizar MB para 10^6
  • utilizar apenas M para 2^20
2
2
2
2015-06-13 07:36:58 +0000

Se quiser apenas o tamanho de um ficheiro específico, então o comando, uma extrapolação trivial das respostas anteriores, é:

ls -sh _filename(s)_

-s é para tamanho e o h é para Legível Humano (como mencionado acima algumas vezes).

A saída terá o seguinte aspecto:

753M myfilename

Se deixar de fora o(s) nome(s) do(s) ficheiro(s), ele irá listar o directório, colocando o tamanho de cada ficheiro ao lado do seu nome - não muito diferente do que ls -la faz quando invocado sem argumentos de nome de ficheiro.

Espero que isto ajude.

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

Se está apenas interessado no tamanho do ficheiro, e não tem de usar o comando ls, tente o seguinte:

# 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

Isto irá imprimir o tamanho do ficheiro sem a necessidade de analisar nada.