![Como medir (não recursivamente) os tamanhos de todas as pastas (ocultas e não ocultas) em um diretório?](https://rvso.com/image/178466/Como%20medir%20(n%C3%A3o%20recursivamente)%20os%20tamanhos%20de%20todas%20as%20pastas%20(ocultas%20e%20n%C3%A3o%20ocultas)%20em%20um%20diret%C3%B3rio%3F.png)
Eu tenho um diretório pai somedir
contendo dois diretórios filhos .hiddenDir
e notHidden
.
Quero medir de forma não recursiva os tamanhos detodosdiretórios filhos em somedir
.
Como posso fazer isso no Unix?
foto do que eu quero:
tentativa fracassada:
O seguinte du
comando baseado retorna apenas os diretórios visíveis:
du -sh *
Enquanto
du -sh .*
retorna apenas os diretórios ocultos.
Como posso devolver os tamanhos detodosos diretórios como na foto?
Responder1
Com GNU du
:
du -hd1
(ele também relata o uso do disco, .
que será a soma dos usos do disco relatados para os subdiretórios e dos arquivos que não são de diretório no diretório atual).
Com zsh
e qualquer du
:
du -sk -- *(/D)
(em quibibytes).
Em qualquer caso, embora isso não relate o uso do disco dos diretórios em profundidade 2
ou abaixo e seu conteúdo, o uso do disco deles ainda está incluído no uso do disco relatado por para os diretórios de nível superior (em outras palavras, háérecursão).
Esse é um dos significados potenciais dotamanhode um diretório. Em outras palavras, esse é o espaço em disco que seria recuperado se esse diretório e seu conteúdo fossem removidos (assumindo que os arquivos não possuem links físicos fora desses diretórios e que seus dados não são referenciados (possivelmente em parte) em outros arquivos fora esses diretórios), observe que geralmente é diferente da soma do tamanho aparente dos próprios arquivos (incluindo arquivos de diretório), conforme relatado por ls -l
.
Responder2
Du aceita vários argumentos - na verdade, os * são expandidos pelo seu shell antes de serem fornecidos ao du. Então isso é tudo que você precisa fazer.
du -sh * .??*
Advertência: isso perderá arquivos ou diretórios nomeados com .
um único caractere - por exemplo, um diretório chamado .a
.
.??*
é usado para pular .
e ..
, que são links para os diretórios atual e pai.