Não é possível obter o tamanho de um diretório ls
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 ?
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.