bom dia,
gostaria de fazer um comando com o grep que todo o arquivo que tivesse a palavra "mp3" fosse apagado..
maneira errada que fiz...
grep -ir mp3 * | rm {} /;
valeu,
Cleiton
Versão Imprimível
bom dia,
gostaria de fazer um comando com o grep que todo o arquivo que tivesse a palavra "mp3" fosse apagado..
maneira errada que fiz...
grep -ir mp3 * | rm {} /;
valeu,
Cleiton
vc pode fazer assim o
find / -name *.mp3 >> /mp3
ele ira criar um arquivo assim
/222.mp3
/2d22.mp3
/22.mp3
/mydnsche/var/www/pages/freon.com.br/home/Diversas/Menina.mp3
ele ira procurar em todo o disco e jogar o resultado neste arquivo
dai vc cria um exec par aapagar
#! /bin/sh
for apagar in `cat /mp3`; do
rm $apagar
done
eu façi assim
Salve!
O problema em se usar um:
Código :
#! /bin/sh for apagar in `cat /mp3`; do rm $apagar done
é que se o nome do arquivo tiver espaço não vai funcionar (ou se tiver sorte poderá deletar outro arquivo, hehe). Acrescente um novo IFS, para que deixe de ser espaços e passe a ser quebra de linha, e também envolva o $apagar entre aspas:
Código :
#! /bin/sh IFS=" "; for apagar in `cat /mp3`; do rm "$apagar" done
Tente utilizar:
find / -name *.mp3 -exec rm {} \
Mas dependendo do tamanho da saída ele pode não funcionar... e vou aproveitar para perguntar pra vocês o que pode ser o problema :)
Uma vez eu impelentei esse comando para apagar arquivos de impressão gerados pelo sistema aqui da empresa que trabalho, em média de 1000/1500 arquivos diários, e não funcionou me retornando essa mensagem:
/usr/bin/find: Too many arguments
Não lembro exatamente a mensagem de erro, mas é algo assim, amanhã no trampo posso ver certo, se precisar.
O que pode ser isso ? Configurações do kernel ? :?
Para conseguir apagar os arquivos, fiz um script parecido com os dos amigos acima.
Mas não corro o risco de nomes de arquivos com espaços ou caracteres especiais.
Valewww
galera..
adaptei um script q já tinha aqui...
fiz alguns testes e funcionou legal....
----------------------------------------
#!/bin/bash
find / -name "*.mp3" > /root/mp3.db
arquivo=`cat /root/mp3.db`
lines=$(echo "${arquivo}" | wc -l)
currline=;oldline=;
for ((counter=1; counter <= $lines; counter=$((${counter} + 1)))); do
currline="$(echo "${arquivo}" | head -n ${counter} | tail -n 1)"
if [ "${currline}" != "${oldline}" ]; then
oldline="${currline}"
rm "${currline}"
#echo "${currline}"
fi
done
----------------------------------------
Obs.: Verifiquem possíveis erros neste script, não me responsabilizo por perca de dados.. :D
valew
[]'s