ls -lfornecerá o tamanho aparente do arquivo, que é o número de bytes que um programa leria se lesse o arquivo do início ao fim. dudaria a você o tamanho do arquivo "no disco".
Por padrão, dufornece o tamanho do arquivo em número de blocos de disco, mas você pode usar -hpara obter uma unidade legível por humanos. Consulte também o manual do duseu sistema.
Observe que com o GNU coreutil du(que provavelmente é o que você tem no Linux), usar -bpara obter bytes implica na --apparent-sizeopção. Não é isso que você deseja usar para obter o número de bytes realmente usados no disco. Em vez disso, use --block-size=1ou -B 1.
Com GNU ls, você também pode fazer ls -s --block-size=1no arquivo. Isso dará o mesmo número du -B 1do arquivo.
Exemplo:
$ ls -l file
-rw-r--r-- 1 myself wheel 536870912 Apr 8 11:44 file
$ ls -lh file
-rw-r--r-- 1 myself wheel 512M Apr 8 11:44 file
$ du -h file
24K file
$ du -B 1 file
24576 file
$ ls -s --block-size=1 file
24576 file
Isso significa que este é um arquivo de 512 MB que ocupa cerca de 24 KB em disco. É um arquivo esparso (principalmente zeros que não são realmente gravados no disco, mas representados como "buracos" lógicos no arquivo). Arquivos esparsos são comuns ao trabalhar com arquivos grandes pré-alocados, por exemplo, imagens de disco para máquinas virtuais ou arquivos de troca etc. Criar um arquivo esparso é rápido, enquanto preenchê-lo com zeros é lento (e desnecessário).
Consulte também o manual do fallocateseu sistema Linux.
ls -l
fornecerá o tamanho aparente do arquivo, que é o número de bytes que um programa leria se lesse o arquivo do início ao fim.du
daria a você o tamanho do arquivo "no disco".Por padrão,
du
fornece o tamanho do arquivo em número de blocos de disco, mas você pode usar-h
para obter uma unidade legível por humanos. Consulte também o manual dodu
seu sistema.Observe que com o GNU coreutil
du
(que provavelmente é o que você tem no Linux), usar-b
para obter bytes implica na--apparent-size
opção. Não é isso que você deseja usar para obter o número de bytes realmente usados no disco. Em vez disso, use--block-size=1
ou-B 1
.Com GNU
ls
, você também pode fazerls -s --block-size=1
no arquivo. Isso dará o mesmo númerodu -B 1
do arquivo.Exemplo:
Isso significa que este é um arquivo de 512 MB que ocupa cerca de 24 KB em disco. É um arquivo esparso (principalmente zeros que não são realmente gravados no disco, mas representados como "buracos" lógicos no arquivo). Arquivos esparsos são comuns ao trabalhar com arquivos grandes pré-alocados, por exemplo, imagens de disco para máquinas virtuais ou arquivos de troca etc. Criar um arquivo esparso é rápido, enquanto preenchê-lo com zeros é lento (e desnecessário).
Consulte também o manual do
fallocate
seu sistema Linux.Eu obtenho o tamanho do arquivo em bytes assim: