Tente fazer isso:
du -s dir
ou
du -sh dir
precisa de -h
support, depende do seu SO.
Veja
man du
Eu sei que você pode ver o tamanho do byte de um arquivo quando faz uma longa listagem com ll
ou ls -l
. Mas eu quero saber quanto armazenamento está em um diretório incluindo os arquivos dentro desse diretório e os subdiretórios dentro dele, etc. Eu não quero o número de arquivos, mas sim a quantidade de armazenamento que esses arquivos ocupam.
Então, eu quero saber quanto armazenamento está em um determinado diretório recursivamente? Eu estou supondo, se houver um comando, que seria em bytes.
Você acabou de fazer:
du -sh /path/to/directory
onde -s
é para resumo e -h
para legível por humanos (não padrão opção).
Cuidado no entanto, ao contrário de ls
, isso não mostrará tamanho do arquivo , mas uso do disco (ou seja, um múltiplo do tamanho do bloco do sistema de arquivos), mas o arquivo pode ser menor ou até maior, então você pode usar a opção --apparent-size
:
du -sh --apparent-size /path/to/directory
Esse é o tamanho que seria transferido pela rede se você tivesse que fazer isso.
Na verdade, o arquivo pode ter "buracos" (vazio), pode ser menor que o tamanho do bloco do sistema de arquivos, pode ser compactado no nível do sistema de arquivos, etc. A página man explica isto.
Como Nicklas pontos , você também pode usar o analisador de uso de disco ncdu
. Lançado de dentro de um diretório, ele mostrará quais pastas e arquivos utilizam espaço em disco, ordenando-os de maior a menor.
Você pode ver esta pergunta também.
Observe que, se você quiser conhecer o tamanho de todas as {sub} pastas dentro de um diretório, também poderá usar a opção -d
ou --max-depth
de du
(que recebe um argumento: o limite recursivo)
Por exemplo:
du -h /path/to/directory -d 1
mostrará algo como
4.0K /path/to/directory/folder1
16M /path/to/directory/folder2
2.4G /path/to/directory/folder3
68M /path/to/directory/folder4
8G /path/to/directory/folder5
PS: inserir 0
como o limite recursivo é equivalente à opção -s
.
Esses 2 comandos lhe darão o mesmo resultado (o seu tamanho recursivo de legível humano em um determinado diretório):
du -h /path/to/directory -d 0
du -sh /path/to/directory
Uma alternativa ao já mencionado comando du
seria ncdu
, que é um bom analisador de uso de disco para uso no terminal. Você pode precisar instalá-lo primeiro, mas está disponível na maioria dos repositórios de pacotes.
Editar: para o formato de saída, veja essas capturas de tela link
Isso lhe dará uma lista de tamanhos do diretório atual, incluindo pastas (recursivas) e arquivos.
$ du -hs *
7.5M Applications
9.7M Desktop
85M Documents
16K Downloads
12G Google Drive
52G Library
342M Movies
8.3M Music
780M Pictures
8.5G Projects
8.0K Public
16K client1.txt
No Unix, um diretório contém apenas nomes e referências a objetos do sistema de arquivos (inodes, que podem se referir a diretórios, arquivos ou outras coisas exóticas). Um arquivo pode aparecer sob vários nomes no mesmo diretório ou ser listado em vários diretórios. Então, "espaço usado pelo diretório e pelos arquivos dentro dele" não faz sentido, já que os arquivos não estão "dentro".
Dito isto, o comando du(1)
lista o espaço usado por um diretório e todo o que é alcançável através dele, du -s
fornece um resumo, com -h
algumas implementações como GNU du
fornecem resultados "legíveis por humanos" (ou seja, kilobyte, megabyte).
Para mim, funcionou de trás para frente no caso da profundidade e do caminho em um OS X El Capitán
du -h -d 1 /path/to/directory
Você pode usar "file-size.sh" na biblioteca awk Velour :
ls -ARgo "$@" | awk '{q += $3} END {print q}'
Tags directory disk-usage recursive