Esta pergunta já tem uma resposta aqui:
Qual comando eu uso para encontrar o tamanho de todos os arquivos (recursivamente) em um diretório Linux ou Mac OS X?
linux
macos
mac
command-line
Daryl Spitzer
fonte
fonte
-k
opção para usar o tamanho de bloco de 1du
, eu usoncdu
, você pode encontrar a referência aqui, remysharp.com/2018/08/23/cli-improvedRespostas:
A versão BSD
du
usada no OS X relata o tamanho com blocos de 512 bytes - os tamanhos são essencialmente arredondados para o próximo valor de 512 bytes. Isso informa o espaço no disco, que é maior que a quantidade de dados. Se você tiver muitos arquivos pequenos, a diferença pode ser grande.Aqui está um exemplo.
Este é o valor com regular
du
. Está em blocos de 512 bytes:O
-h
sinalizador resulta em um número mais legível, em kilobytes. Como esperado, é metade do número de blocos de 512 bytes:Por fim, você pode usar
find
eawk
fornecer a soma dos bytes reais nos arquivos. Isso é meio lento, mas funciona:Este valor corresponde exatamente ao número informado pela janela Obter informações do Finder. (Não há garfos ou xattrs estranhos nesse conjunto de arquivos.) É significativamente menor que o valor relatado por
du
.Eis como funciona: ele obtém uma lista de todos os arquivos e os passa para
ls -l
; entãoawk
é usado para contar os bytes. O-type f
sinalizador existe para que apenas os arquivos (e não os diretórios) sejam enviadosls
. Sem esse sinalizador, ele também enviará nomes de diretório parals
, e cada arquivo será listado duas vezes: uma como um arquivo individual e outra como um item no diretório.A versão GNU de
du
pode fornecer valores em bytes reais, em vez de blocos. É lamentável que a versão do BSDdu
não seja tão flexível.fonte
du
partir do GNU coreutils com a-b
opção, recebo um resultado diferente do que com o seufind
pipe. Para um diretório de 36 GB, obtenho uma diferença de 82 KB.Mostrar o tamanho de um único arquivo
du -h path_to_a_file
Mostre o tamanho do conteúdo de um diretório, cada subdiretório e cada arquivo individual:
du -h path_to_a_directory
Mostre o tamanho do conteúdo de um diretório:
du -sh path_to_a_directory
fonte
du -sch
se você quiser algo mais fácil de ler.du - informa ao disco que não usa o tamanho do arquivo .
acima do código do terminal (im no osx 10.6) me oferece o melhor resultado e é muito mais rápido que "find ... -exec"
uma referência rápida
fonte
find . -type f -print0 | xargs -0 stat -c%s | awk '{b+=$1} END {print b}'
Você pode usar o
du -ah .
que exibe tamanhos de todos os arquivos e diretórios recursivamente.Isso pode ser combinado com
sort
, para que você veja os 20 maiores diretórios da pasta atual:Nota: Opção
-h
parasort
não está disponível em OSX / BSD, por isso você tem que instalarsort
a partir decoreutils
(por exemplo, viabrew
) e aplicar o caminho bin paraPATH
, por exemplo,Caso contrário, use:
fonte
brew install coreutils
caso contrário, use o comando BSD sort no final sem-h
.Combinei todas as suas aprovações e a combinei com uma saída legível por humanos, o resultado é:
Link para o gist: https://gist.github.com/mlegenhausen/9365461
fonte