Na verdade, aqui está a prova:
mkdir .test
echo "hi" > .test/appo
du -a
4 ./.test/appo
8 ./.test
12 .
A opção -a
é usada para mostrar explicitamente quais arquivos foram contados.
Você está usando du *
?
Eu quero estimar a quantidade de espaço em disco usada por um diretório usando o seguinte comando.
du -sh dir_name
que não calcula os diretórios ocultos. Na página man do du não há informações sobre isso. Como calcular a quantidade de espaço em disco usado pelos diretórios, incluindo os arquivos ocultos.
Este comando mostra o tamanho resumido dos diretórios ocultos
du -hs .[^.]*
FYI, para estimar o tamanho ocupado por vários diretórios, é muito melhor usar ncdu
Você pode navegar na GUI ncurses entre vários diretórios e mostrará o tamanho de cada diretório. Se eu estou usando du, eu teria que executar du comando para cada diretório que eu quero verificar, o que pode ser complicado. Você pode ordenar os diretórios de acordo com o tamanho ocupado também na GUI ncurses.
O comando correto é: du -hs $(ls -A)
$ du -hs $(ls -A)
0 test
0 .test
du -hs .* *
, como mencionado em outra resposta, não está correto se você deseja listar todos os arquivos e subdiretórios (incluindo os ocultos).
Exemplo:
$ touch test
$ touch .test
$ echo *
test
$ echo .* *
. .. .test test
$ du -hs .* *
4,0K .
1,8G ..
Por que o du
se comporta assim? Porque você usa -s
que resumem o resultado e que todos os arquivos e subdiretórios são filhos de .
então du -hs
não os lista!
Ele faz e não faz. Exemplo:
No diretório inicial: (apenas um usuário existe)
du -sh /home/*
2.6G /home/user
no diretório do usuário: (grande diferença entre as somas)
du -sh *
61M bin
2.0M dump-20130124104823.tar.gz
651M public_html
472K twitter-2.0.0.gem
11M wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2
e o motivo é:
du -sh /home/user/.rvm/
1.9G /home/user/.rvm/
du
calculará diretórios ocultos enquanto estiver descendo em subdiretórios, mas no diretório atual o * simplesmente não corresponde ao padrão .directory_name para que os elementos ocultos do diretório atual sejam omitidos.
Demorei algum tempo para descobrir e, como Shadyabhi recomenda, teria sido óbvio se eu tivesse usado o ncdu.
O comando correto é: du -hs .* *
find -maxdepth 1 -exec du -sh "{}" \; | sort -h
Isso lhe dá:
Ele também classifica a saída para facilitar a visualização do que é maior.
Eu também fiz isso um alias no meu arquivo ~/.bash_aliases
.
alias big='find -maxdepth 1 -exec du -sh "{}" \; | sort -h'
alias sbig='sudo find -maxdepth 1 -exec du -sh "{}" \; | sort -h'
Agora, posso executar apenas big
para encontrar os maiores diretórios em um diretório e sbig
quando precisar de permissões sudo.
Tags linux