Procurando por uma série de comandos que me mostrem os maiores arquivos de uma unidade.
command-line
disk-usage
Ryan Detzel
fonte
fonte
Respostas:
Se você só precisa encontrar arquivos grandes, pode usar
find
com a-size
opção O próximo comando listará todos os arquivos maiores que 10MiB ( não confunda com 10MB ):Se você deseja encontrar arquivos entre um determinado tamanho, é possível combiná-lo com uma pesquisa "tamanho menor que". O próximo comando encontra arquivos entre 10MiB e 12MiB:
apt-cache search 'disk usage'
lista alguns programas disponíveis para análise de uso do disco. Um aplicativo que parece muito promissor égt5
.Na descrição do pacote:
Na seção "pacotes relacionados" do gt5 , eu encontrei
ncdu
. Na descrição do pacote:fonte
-ls
saída é codificado (ver o código fontepred_fls
e list_file funções). Você pode tentar aproximar a saída usando a-printf
opção, pós-processar a saída com awk ou usar algo comofind ... -type f -exec ls -ldh {} \; | column -t
Eu apenas uso uma combinação de
du
esort
.Então é um caso de enxágue e repita . Segmente os subdiretórios que você considera grandes demais, execute o comando para eles e descubra o que está causando o problema.
Nota: Eu uso
du
o-x
sinalizador para manter as coisas limitadas a um sistema de arquivos (eu tenho um arranjo bastante complicado de coisas montadas em conjunto entre SSD e RAID5).Nota 2:
2>/dev/null
redireciona todas as mensagens de erro para o esquecimento. Se eles não incomodam você, não é obrigatório.fonte
du
página do manual: "Resuma o uso do disco de cada ARQUIVO, recursivamente para diretórios".Minha solução favorita usa uma combinação de várias dessas boas respostas.
du
argumentos:-a
para "todos" arquivos e diretórios. Deixe para apenas diretórios-BM
para produzir os tamanhos em megabytes (M) de tamanhos de bloco (B)2>/dev/null
- excluir mensagens de erro "permissão negada" (obrigado @Oli)sort
argumentos:-n
para "numérico"-r
para "reverso" (maior para o menor)head
argumentos:-n 50
pelos 50 melhores resultados.more
estiver usando um número menorNota: Prefixe com
sudo
para incluir diretórios que sua conta não tem permissão para acessar.Exemplo mostrando os 10 maiores arquivos e diretórios em / var (incluindo o total geral).
fonte
A resposta do qbi está correta, mas será muito lenta quando houver muitos arquivos, pois iniciará um novo processo ls para cada item.
uma versão muito mais rápida usando processos filhos sem gerar filhos seria usar printf para imprimir o tamanho em bytes (% s) e o caminho (% p)
find "$directory" -type f -printf "%s - %p\n" | sort -n | tail -n $num_entries
fonte
Para exibir os 20 principais diretórios principais (recursivamente) na pasta atual, use a seguinte linha:
ou (mais orientado para Unix):
Para os 20 maiores arquivos do diretório atual (recursivamente):
ou com tamanhos legíveis por humanos:
Portanto, esses aliases são úteis nos arquivos rc (sempre que você precisar):
fonte
Parece ser o aplicativo perfeito para
find
:Este comando encontrará todos os arquivos no diretório
$DIRECTORY
e será executadols -s
neles. O último comando imprime o tamanho alocado de um arquivo mais o nome do arquivo. O resultado é classificado numericamente e as cinco últimas entradas são mostradas. Portanto, como resultado, você verá os cinco maiores arquivos$DIRETORY
ou em qualquer subdiretório. Se você digitar,tail -n 1
verá apenas o maior arquivo.Além disso, você pode brincar muito com
find
. Por exemplo, você pode procurar arquivos com menos de n dias (-ctime -n
) ou pertencentes a usuários especiais (-user johndoe
).fonte
Quando preciso liberar mais espaço nos servidores, uso este comando. Ele encontra todos os arquivos maiores que 50 MB e "du -h" cria uma lista melhor de arquivos e "sort -n" após o pipe torna a lista classificada numericamente por tamanho de arquivo.
fonte
Experimente o Baobab, ele fornece uma visão geral gráfica de arquivos e pastas, você pode ver onde estão os porcos do espaço real e excluí-los com um clique https://help.ubuntu.com/community/Baobab
fonte
Para encontrar todos os arquivos GB, por exemplo, eu usaria du e grep, embora os outros métodos mencionados aqui pareçam ótimos também.
Você também pode gostar da opção --except que du possui.
fonte
Você também pode classificar os arquivos por tamanho:
Ele encontra apenas arquivos e é executado
du -h
para cada arquivo, o que mostra o tamanho do arquivo. Por fim, classificamos a saída defind
/ dedu
acordo com a primeira coluna (em formato legível por humanos).O último arquivo impresso é o maior.
fonte
Você pode usar o comando para ver os maiores arquivos enquanto ignora os diretórios:
Para encontrar todos os arquivos maiores que 100MiB (isso não é 100MB, veja aqui se você estiver confuso):
o comando abaixo exibirá os 5 maiores arquivos da pasta
$DIRECTORY
:USANDO
du
: O comando abaixo, que usa du, exibe os diretórios com os 20 maiores tamanhos na pasta de trabalho:Agora, para exibir agora os maiores diretórios / arquivos, incluindo subpastas, execute:
Usando
ls
:Para listar os 5 principais arquivos maiores no diretório / bin, emita o comando abaixo:
Você também pode usar o Disk Usage Analyzer ou o Baobao, como mostrado aqui, por exemplo.
fonte
Uma ferramenta excelente e fácil de usar referida na resposta a uma pergunta semelhante é a
NCurses Disk Usage
ferramenta:fonte