Quais comandos eu preciso para o Linux ls
mostrar o tamanho do arquivo em MB?
Quais comandos eu preciso para o Linux ls
mostrar o tamanho do arquivo em MB?
Respostas:
ls -l --block-size=M
fornecerá uma lista de formatos longos (necessária para realmente ver o tamanho do arquivo) e os tamanhos dos arquivos arredondados até o MiB mais próximo.
Se você deseja unidades MB (10 ^ 6 bytes) em vez de unidades MiB (2 ^ 20 bytes), use --block-size=MB
.
Se você não deseja o M
sufixo anexado ao tamanho do arquivo, pode usar algo como --block-size=1M
. Obrigado Stéphane Chazelas por sugerir isso.
Se você simplesmente deseja tamanhos de arquivo em unidades "razoáveis", em vez de especificamente megabytes , poderá usar -lh
para obter uma lista de formatos longos e uma apresentação de tamanho de arquivo legível por humanos . Isto irá utilizar unidades de tamanho de arquivo para manter os tamanhos dos arquivos apresentados com cerca de 1-3 dígitos (assim você verá tamanhos de arquivo como 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
e assim por diante.
O --block-size
parâmetro é descrito na página do manual para ls; man ls
e procure SIZE
. Ele também permite outras unidades além de MB / MiB e, pelo que parece (não tentei), tamanhos arbitrários de blocos (para que você possa ver o tamanho do arquivo como um número de blocos de 429 bytes, se desejar). para).
Observe que ambas são extensões GNU --block-size
e -h
estão sobre as do Open Groupls
, portanto, isso pode não funcionar se você não tiver uma área de usuário GNU (o que a maioria das instalações Linux possui). O ls
do GNU Coreutils 8.5 suporta --block-size e -h como descrito acima. Obrigado a Kojiro por apontar isso.
ls
? Padrãols
não tem esse argumento. Com a extensão xsi ls
tem o -s
sinalizador, o que faz relatar o número de blocos, mas não há sinalizador padrão --block-size
.
--block-size
partir do coreutils 8.5, que é o que está instalado no meu sistema Debian Squeeze. Como a pergunta era explicitamente para Linux e não especificava mais nada, admito que assumi uma área de usuário centrada nos coreutils do GNU. Atualizei a resposta para esclarecer isso. (Além disso, ls Open grupo não parecem ter -h também. :)
)
--block-size
é uma extensão do GNU. Suspeito que o Mac OS X não use o GNU ls
.
ls -lh
fornece tamanhos de arquivo legíveis por humanos, formato longo.
Ele usa 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 GNU coreutils, não POSIX de linha de base.
Observe que isso não responde à pergunta exatamente como solicitado. Se você deseja tamanhos estritamente no MiB, mesmo para arquivos pequenos ou gigantescos, a resposta de Michael Kjörling faz isso para os coreutils do GNUls
.
h
é muito mais fácil de escrever do que--block-size=M
ls -l
se não humanos? : p
ls -l
saída é a maneira errada de fazer as coisas, 99% do tempo. unix.stackexchange.com/questions/128985/why-not-parse-ls . Esse 1% está sendo generoso e é praticamente limitado a linhas que você escreve interativamente para uso único, não um script que você usará repetidamente em nomes de arquivos desconhecidos.
ls -lhS
classificar por tamanho, em formato legível por humanos
ls -lh
resposta por razões pelas quais isso realmente não responde à pergunta.
E esta é a opção para listar tudo em uma ordem de diretório por tamanho de arquivo (ainda legível por humanos) crescente.
ls -lSrh
--block-size=M
faça com que umM
sufixo seja exibido ao lado do tamanho e você pode usá--block-size=1M
-lo para omiti-lo. Também vale a pena mencionar que você precisa do GNU ls para isso (a maioria dos sistemas Linux não incorporados terá GNU ls).