Eu tentei obter o tamanho de um diretório (contendo diretórios e subdiretórios) usando o ls
comando com a opção l
. Parece funcionar para arquivos ( ls -l file name
), mas se eu tentar obter o tamanho de um diretório (por exemplo ls -l /home
), recebo apenas 4096 bytes, embora, ao todo, seja muito maior.
command-line
ls
disk-usage
Abdul Al Hazred
fonte
fonte
-h
opção útil que você pode adicionar à-l
opção (por exemplo,ls -lh
) para obter os tamanhos dos arquivos a serem impressos em notação amigável para o ser humano, como 1,1 milhão em vez de 1130301. O "h "nodu -hs
comando que o @sam deu como resposta para sua pergunta sobre diretórios também significa" legível por humanos "e também aparece nodf -h
qual mostra as quantidades legíveis por humanos de espaço usado e livre em disco.Respostas:
du -sh file_path
Explicação
du
O comando ( d isc u sage) estima o uso do espaço file_pathAs opções
-sh
são (deman du
):Para verificar mais de um diretório e ver o total, use
du -sch
:fonte
du
e também você dar o caminho de pesquisa para obter mais detalhesman du
...find
por exemplo, contar a quantidade de espaço em subdiretórios específicos no caminho atual:$ find . -type d -name "node_modules" -prune -exec du -sh {} \;
Basta usar o
du
comando:fornecerá o uso cumulativo do disco de todos os diretórios, arquivos etc. não ocultos no diretório atual em formato legível por humanos.
Você pode usar o
df
comando para conhecer o espaço livre no sistema de arquivos que contém o diretório:fonte
du -sh *
começa a lançar erros de "opção desconhecida" se algum dos arquivos nesse diretório começar com um traço. Mais seguro para fazerdu -sh -- *
du -sh *
não mostra usos de memória de pastas ocultasdu -sh -- * .*
para incluir arquivos de ponto. Isso é útil para incluir um.git
diretório possivelmente grande , por exemplo. Como alternativa, no zsh, você podesetopt globdots
fazer glob dotfiles por padrão.--
faz? Eu sei que isso se aplica aos built-ins do shell para encerrar os argumentos das opções, masdu
não é um built-in e não vejo esse uso documentado paradu
: linux.die.net/man/1/du-b
(--apparent-size
)du
é seu amigo. Se você quer apenas saber o tamanho total de um diretório, entre nele e execute:Se você também gostaria de saber quais subpastas ocupam quanto espaço em disco ?! Você pode estender este comando para:
que fornecerá o tamanho de todas as subpastas (nível 1). A saída será classificada (maior pasta na parte superior).
fonte
ncdu
os arquivos, será classificado por tamanho decrescente por padrão.du
pode ser complicado de usar, pois você precisa passar 100 argumentos para obter uma saída decente. E descobrir o tamanho das pastas ocultas é ainda mais difícil.Facilite sua vida e use-a
ncdu
.Você obtém resumos por pasta que são facilmente navegáveis.
fonte
ncdu
é ótimo, eu sempre procuro esse comando quando esqueço. É rápido, fácil de navegar e ajuda a encontrar grandes pastas facilmente. Para sua informação, também está disponível para o macOS e provavelmente para todas as máquinas Linux.ncdu
pressionando ad
teclaOutros já mencionaram
du
, mas eu também gostaria de mencionar o Ncdu - que é uma versão ncursesdu
e fornece interatividade: você pode explorar a hierarquia de diretórios diretamente e ver os tamanhos dos subdiretórios.fonte
O
du
comando mostra o uso do disco do arquivo.A
-h
opção mostra os resultados na forma legível por humanos (por exemplo, 4k, 5M, 3G).fonte
Todos os exemplos acima informam o tamanho dos dados no disco (ou seja, a quantidade de espaço em disco que um arquivo específico está usando, que geralmente é maior que o tamanho real do arquivo). Existem algumas situações em que isso não fornece um relatório preciso, se os dados não forem realmente armazenados nesse disco específico e existirem apenas referências de inode.
No seu exemplo, você usou ls -l em um único arquivo, que retornará o tamanho real do arquivo, NÃO o tamanho no disco.
Se você quiser saber o tamanho real do arquivo, adicione a opção -b ao du.
fonte
pessoalmente, acho que isso é melhor, se você não quiser usar
ncdu
fonte
Isso mostra quanto espaço em disco resta na unidade atual e informa quanto cada arquivo / diretório ocupa. por exemplo,
fonte
Eu uso este comando como root :
fonte
encontre todos os arquivos no diretório atual recursivamente e resuma seu tamanho:
fonte
-not -type d
para somar não apenas tamanhos de arquivos comuns (-type f
), mas também tamanhos de links simbólicos e assim por diante.Aqui está uma função para suas .bash_aliases
saída de amostra:
para subdiretórios:
fonte
Mais uma variante:
fonte
Observe que
du
imprime o espaço que um diretório ocupa na mídia, geralmente maior do que apenas o tamanho total de todos os arquivos do diretório, porquedu
leva em consideração o tamanho de todas as informações auxiliares armazenadas na mídia para organizar o diretório em conformidade com formato de sistema de arquivos.Se o sistema de arquivos for compactável,
du
poderá gerar um número ainda menor que o tamanho total de todos os arquivos, porque os arquivos podem ser compactados internamente pelo sistema de arquivos e, portanto, ocupam menos espaço na mídia do que apenas as informações não compactadas que contêm. Mesmo se houver arquivos esparsos.se houver links físicos no diretório, também
du
poderá imprimir um valor menor, porque vários arquivos diferentes no diretório referem os mesmos dados na mídia.Para obter o tamanho total direto de todos os arquivos no diretório, a seguinte expressão shell de uma linha pode ser usada (assumindo um sistema GNU):
ou ainda mais curto:
Apenas soma tamanhos de todos os arquivos que não são de diretório no diretório (e seus subdiretórios recursivamente) um por um. Observe que, para links simbólicos, ele informa o tamanho do link simbólico (não do arquivo apontado pelo link simbólico).
fonte
Você pode usar
du -sh directory/
e
du -sh filename
conhecer o espaço ocupado pela pasta ou arquivo.
df -h
mostrará o uso do disco no formato legível por humanos - h faz isso.
Há também um programa gui chamado
Disk Usage Analyzer
.fonte
Aqui está um script POSIX que funcionará com:
Fonte
fonte