Respostas:
Talvez -hseja 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 commandnamepara ler o manual / ajuda de um determinado comando, por exemplo, aqui man ls.
ls --block-size=Mimprime 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 -lhtambé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 -hnã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á awkfazer 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 lslayout. Você pode alterar megapara "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 -lhou ls --block-size=M, mas o AWK é muito útil!
tente um ls -shRformato legível humano recursivo.
-hno 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 -laocorre quando chamado sem argumentos de nome de arquivo.
Espero que isto ajude.
-hopção não existe lsnesse sistema.
ls -l --block-size=MB
Para o --block-sizeparâmetro:
MBpara 10 ^ 6Mpara 2 ^ 201MB . Por esse motivo, achei ls -l --block-size=kBmais útil.
Se você está apenas interessado no tamanho do arquivo e não precisa usar o lscomando, 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.