gui8920
(usa CentOS)
Enviado em 01/09/2013 - 07:29h
Desculpem a demora na reposta, estava com alguns probleminhas na internet!
amarildosertorio escreveu:
É um script. Modifica as variáveis e testa. Se quiser testar listando antes de deletar...
# vi /usr/local/sbin/teste.sh
#!/bin/bash
arqs=`cat /tmp/lista.txt`
dir="/diretorio/dos/arquivos"
for i in `echo $arqs`;do
find $dir -name *$i -exec ls -l {} \;
done
# chmod +x /usr/local/sbin/teste.sh
# /usr/local/sbin/./teste.sh
Em relação ao
rm -rf retire o "r"...
# man rm
-f, --force
ignore nonexistent files, never prompt
-r, -R, --recursive
remove directories and their contents recursively
O console me retornou uma mensagem tipo "/etc/bash not found" :/
phoemur escreveu:
Como a lista dele tem 40 mil arquivos, possívelmente a solução com loop for vai dar estouro de pilha devido à quantidade de entradas muito grande, de forma que o mais correto seria usar o xargs
xargs -t -L1 rm -f < lista.txt
assim funcionaria melhor, é mais simples e elegante
E se quiser usar multithreading pra fazer tudo de forma mais rápida utilizando vários processos ao mesmo tempo é só utilizar a opção -P0, porém o PC deve ter recursos de processamento suficientes
xargs -t -P0 -L1 rm -f < lista.txt
pra usar é só executar o comando que eu passei no diretorio onde estao os arquivos, substituindo o lista.txt pelo caminho da sua lista
Referência:
http://apoie.org/JulioNeves/TiraGosto.htm
Este deu certo :D o unico problema foi que nao consegui com a lista toda. Enfim, tenho que testar, espero que dê com pelo menos 10 mil arquivos pois se não fica puxado dividir tudo.
Novamente, obrigado a todos que responderam :D