Respostas:
Talvez -h
seja suficiente para você:
-h
Quando usado com a opção -l, use os sufixos da unidade: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte e Petabyte para reduzir o número de dígitos para três ou menos usando a base 2 para tamanhos.
ls -lah
Conselho geral: Use man commandname
para ler o manual / ajuda de um determinado comando, por exemplo, aqui man ls
.
ls --block-size=M
imprime os tamanhos em megabytes, mas mostra 1 MB também para itens abaixo de 1 MB. Não tenho certeza se esta opção é aceitável na sua versão UN do ls, no entanto.
Na verdade, ls -lh
também imprime tamanhos em Gigabytes se o arquivo for grande o suficiente (de qualquer forma: no Linux de 64 bits, isso funciona:>)
Em um nó lateral: du -sh *
imprime também tamanhos de diretório no diretório atual.
ls -h
não tem sentido depois que um arquivo cresce mais de 1GB, então eu usar este comando em um 1 segundo loop:while true ; do ls -al --block-size=M ; sleep 1 ; done
Você precisará awk
fazer as contas para você:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Isso não afetará a saída para arquivos menores que mega
.
Pode ser necessário ajustar o número do campo para coincidir com o ls
layout. Você pode alterar mega
para "1000000" se essa for sua preferência.
Isso imprimirá mais casas decimais do que você provavelmente deseja. Você pode implementar uma função de arredondamento.
ls -lh
ou ls --block-size=M
, mas o AWK é muito útil!
tente um ls -shR
formato legível humano recursivo.
-h
no Tru64 e o fez mais de dois anos antes de esta resposta ser publicada.
Se você deseja apenas o tamanho de apenas um arquivo específico, o comando, uma extrapolação trivial das respostas anteriores, é:
ls -sh nome (s) do arquivo
-s
é para tamanho e h
é para legível por humanos (como mencionado acima algumas vezes).
A saída terá a seguinte aparência:
753M myfilename
Se você deixar de fora o (s) nome (s) do (s) nome (s) do arquivo, ele listará o diretório, colocando o tamanho de cada arquivo ao lado do nome - não muito diferente do que ls -la
ocorre quando chamado sem argumentos de nome de arquivo.
Espero que isto ajude.
-h
opção não existe ls
nesse sistema.
ls -l --block-size=MB
Para o --block-size
parâmetro:
MB
para 10 ^ 6M
para 2 ^ 201MB
. Por esse motivo, achei ls -l --block-size=kB
mais útil.
Se você está apenas interessado no tamanho do arquivo e não precisa usar o ls
comando, 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
Isso imprimirá o tamanho do arquivo sem a necessidade de analisar nada.