Pergunta

Eu executar o comando, sem sucesso, obter o tamanho de diretórios (arquivos dentro pertencem ao tamanho de um diretório)

ls -lSrh

Eu obter apenas kilobits para o tamanho de diretórios, enquanto o seu conteúdo é mais do que isso.

Como você pode listar o tamanho de diretórios, incluindo o seu conteúdo no número de ls ?

Foi útil?

Solução

du -sh directory_name

ls vai dar-lhe o tamanho do diretório entrada , e não do conteúdo do diretório. Baseado na minha rápida skim de man ls não parece ser uma maneira de fazer ls mergulho para baixo e calcular o tamanho dos diretórios (provavelmente porque seria uma operação cara).

Outras dicas

Se você quiser obter o tamanho diretórios, você pode usar

du -sh

du -hs é grande até que você tenha um grande diretório.

Por exemplo, se você armazenar arquivos de cache (por exemplo, o armazenamento de cache do sistema de arquivos para Rails) ou arquivos enviados, ... com um esquema particionado, como "cache / 123/456/789 / real_files" e você tem um monte deles , du está tomando para sempre, eventualmente, bloqueando todo o IO.

Eu não tenho uma solução melhor, mas isso deve ser considerado antes de executar este no servidor de produção durante o horário de pico.

Com base na resposta de Sean brilhante que você pode fazer o seguinte (em bash)

for each in $(echo */ | sed "s/ /\n/g" | sed "s/\///g");  do du -hs "$each"; done;

Este vai ter um conteúdo de diretório completo para todos os diretórios no diretório atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top