Find procurar tamanho directorio [RESOLVIDO]

1. Find procurar tamanho directorio [RESOLVIDO]

welles
wellesfreire

(usa CentOS)

Enviado em 01/08/2015 - 15:30h

Saudações a dias estou procurando uma combinação do find, pois eu tenho uns 600 diretórios com menos de 5mb gostaria de apaga-los mas não acho a combinação vou mostrar que já testei mas ele mostra diretórios imensos .

find /media/1TBC/avaliar/ -depth -type d -size -10M
find /media/1TBC/ -maxdepth 2 -type d -size 100k
find /media/1TBD/dirpequenos/ -type d -size -1M

Muito obrigado desde já


  


2. Re: Find procurar tamanho directorio [RESOLVIDO]

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 01/08/2015 - 16:53h


Você pode fazer assim:


$ find /diretorio -type d -size -5M -exec ls -lh {} \;
$ find /diretorio -type d -size -5M -exec rm {} \;




3. Re: Find procurar tamanho directorio [RESOLVIDO]

welles
wellesfreire

(usa CentOS)

Enviado em 01/08/2015 - 19:28h


Amigo continuo exibindo diretorios com até 1 1tb de arquivo .


4. Re: Find procurar tamanho directorio [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 01/08/2015 - 21:02h

Me explica melhor a sua árvore de diretórios aí. Você quer encontrar todos os diretórios com menos de 5MB recursivamente ou apenas aqueles que estiverem diretamente sob o diretório investigado?
--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


5. Re: Find procurar tamanho directorio

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 01/08/2015 - 23:20h

Olá,

No mínimo, muito interessante essa pergunta. Este tipo de situação/necessidade nunca havia acontecido comigo.

O find, dessa forma, não vai funcionar mesmo. Lembrando que diretório nada mais é do que um arquivo especial, e o seu tamanho é sempre 4k. O find vai testar o tamanho do diretório e não do seu conteúdo.

Obviamente deve existir uma forma mais "bonita e profissional", mas por enquanto, só me veio isso à cabeça, mas acho que resolve:

rm -rf $(find /media/1TBD/dirpequenos/  -type d -exec  du -hm {} + | egrep "^[1-5][[:space:]]" | awk '{print$2}') 


OBS:: O comando acima irá remover TODOS os diretórios subdiretórios que contenham de 0 á 5 MB, ou seja, RECURSIVAMENTE. Caso essa não for a intenção, adicione o argumento -maxdepth N, onde N é o numero de profundidade de diretórios. 0 = atual.

Abs,


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


6. Re: Find procurar tamanho directorio [RESOLVIDO]

welles
wellesfreire

(usa CentOS)

Enviado em 02/08/2015 - 11:01h

lcavalheiro escreveu:

Me explica melhor a sua árvore de diretórios aí. Você quer encontrar todos os diretórios com menos de 5MB recursivamente ou apenas aqueles que estiverem diretamente sob o diretório investigado?
--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


Amigo nesse diretório criei dois diretórios um vazio e um com 10mb e com o comando acima ele retorna sempre os dois se eu colocasse a opção delete ele removeria o diretorio com mas de 5mb que no caso não quero fazer .

find /media/1TBD/dirpequenos/ -type d -size -5M -exec du -h {} \;
9,8M /media/1TBD/dirpequenos/teste2
4,0K /media/1TBD/dirpequenos/teste





7. Re: Find procurar tamanho directorio [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 02/08/2015 - 11:09h

Você vai ter que fazer um shell script com o du para isso acontecer do jeito que você quer. Dá uma lida na manpage do comando para você ver se é o que você quer.
--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


8. Re: Find procurar tamanho directorio [RESOLVIDO]

Rodrigo Lira
roudi

(usa Arch Linux)

Enviado em 03/08/2015 - 12:55h

Acho que o comando a seguir pode te ajudar. Ele vai apagar os arquivos que possuem menos de 5MB e depois irá deletar os diretórios vazios. Detalhe: ele só funciona na primeira ocorrencia de diretórios vazios, caso tenha vários subdiretórios vai ser preciso executar esse comando várias vezes. Basta ir executando o comando até que não tenha mais erros como saída ou colocar dentro de um for.

find . -type d -empty -exec rmdir {} \; $(find . -type f -size -5M -exec rm -rf {} \;)


9. Re: Find procurar tamanho directorio [RESOLVIDO]

welles
wellesfreire

(usa CentOS)

Enviado em 03/08/2015 - 13:06h

tonyhts escreveu:

Olá,

No mínimo, muito interessante essa pergunta. Este tipo de situação/necessidade nunca havia acontecido comigo.

O find, dessa forma, não vai funcionar mesmo. Lembrando que diretório nada mais é do que um arquivo especial, e o seu tamanho é sempre 4k. O find vai testar o tamanho do diretório e não do seu conteúdo.

Obviamente deve existir uma forma mais "bonita e profissional", mas por enquanto, só me veio isso à cabeça, mas acho que resolve:

rm -rf $(find /media/1TBD/dirpequenos/  -type d -exec  du -hm {} + | egrep "^[1-5][[:space:]]" | awk '{print$2}') 


OBS:: O comando acima irá remover TODOS os diretórios subdiretórios que contenham de 0 á 5 MB, ou seja, RECURSIVAMENTE. Caso essa não for a intenção, adicione o argumento -maxdepth N, onde N é o numero de profundidade de diretórios. 0 = atual.

Abs,


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


Amigo Resolvido muito obrigado com esse deu certo




10. Re: Find procurar tamanho directorio [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 03/08/2015 - 15:34h

Que bom!

Não esquece de marcar como resolvido.

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts