Eu trabalho em um cluster compartilhado com outros colegas. O disco rígido é limitado (e já está cheio em algumas ocasiões), então eu limpo minha parte ocasionalmente. Quero fazer isso rapidamente, então até agora faço isso criando uma lista de arquivos com mais de 100 MB com mais de 3 meses e vejo se ainda preciso deles.
Mas agora estou pensando que poderia haver uma pasta com mais de 1000 arquivos menores que eu sinto falta, então quero uma maneira fácil de ver se esse é o caso. Pela maneira como eu gero dados, ajudaria a obter uma lista do tamanho total por extensão. No contexto desta pergunta, 'extension' está como tudo atrás do último ponto no nome do arquivo.
Suponha que eu tenha várias pastas com vários arquivos:
folder1/file1.bmp 40 kiB
folder1/file2.jpg 20 kiB
folder2/file3.bmp 30 kiB
folder2/file4.jpg 8 kiB
É possível fazer uma lista do tamanho total do arquivo por extensão de arquivo, assim:
bmp 70 kiB
jpg 28 kiB
Não ligo para arquivos sem extensão, para que possam ser ignorados ou colocados em uma categoria.
Eu já passou por páginas man de ls
, du
e find
, mas eu não sei o que é a ferramenta certa para este trabalho ...
fonte
Respostas:
Em um sistema GNU:
Ou o mesmo com
perl
, evitando a-printf
extensão do GNUfind
(ainda usando uma extensão GNU-print0
, mas essa é mais amplamente suportada atualmente):Dá uma saída como:
Se você quiser
KiB
,MiB
... sufixos, pipe paranumfmt --to=iec-i --suffix=B
.%b*512
fornece o uso do disco, mas observe que, se os arquivos tiverem links físicos várias vezes, eles serão contados várias vezes, para que você veja uma discrepância com osdu
relatórios.fonte
-printf
é específico do GNUfind
, e foi por isso que eu disse em um sistema GNU .perl
alternativa que deve funcionar mesmo no macOS.Aqui está outra solução:
A parte que obtém as extensões é:
Em seguida, procure os arquivos com uma extensão e imprima-os na tela também:
Em seguida, queremos manter a extensão e o total:
e mantenha na mesma linha:
fonte
Não é tão bom quanto a solução de Stephane, mas você pode tentar
onde você deve executar isso para cada tipo de arquivo.
fonte
du
chamada seja executada. Com o GNUxargs
, você deseja adicionar a-r
flag para que o du não seja executado quando não houver arquivo (caso contrário, você acabaria com o uso do disco do diretório atual). Você pode adicionar-type f
ou! type d
evitar a contagem dos arquivos que estão nos diretórios cujo nome termina em.png
.