Olá,
Fiz o teste recomentado por você e ficou na mesma. Fiz o seguinte: Criei um script semelhante ao seu exemplo, só que no lugar do "rm -rf" coloquei o "ls -lia" confirme você menciona. A única diferença é que agora o referido script aponta o seguinte erro "./testescript.sh: line 6: /bin/ls: Lista de argumentos muito longa. E agora? Continuo sem endender nada!
Grato e fico no aguardo de um comentário seu.
uhmm...
"lista de argumentos muito longa" isso já é alguma coisa, existe uma limitação no linux com relação a trabalhar com muitos arquivos ao mesmo tempo, não lembro qual variável no /proc precisa ser alterada pra poder trabalhar com arquivos acima do normal. Mas podemos resolver este problema alterando o script.
O script acima deverá listar todos os arquivos do diretório que está no começo dele..Código :#!/bin/bash cd /caminho/dos/arquivos a="dbf fpt idx prn" for i in $a; do for u in `find . -type f -iname "*.$i" -print 0`; do echo $u done done
Se funcionar é só substituir o "echo" por "rm -f"
Última edição por lucianogf; 11-03-2008 às 15:16.
O script acima irá tratar arquivo por arquivo, e não arquivos em massa...
cara...
fiz um teste aqui e o script que passei por ultimo não funciona...
os arquivos que você vai trabalhar possuem espaço no nome?
cara..
fiz um teste nesse script aqui e ele funciona perfeitamente com arquivos que não tem espaço no nome
você só precisa substituir o caminho e a variável $a, se aparecer os nomes normalmente é só trocar o "echo " por "rm -f"Código :#!/bin/bash -v DIR=/home/luciano/mp3 cd $DIR a="mp3" for i in $a; do find . -type f -iname "*.$i" -print0 | xargs -0 -i% echo % >> $i.txt done for b in $a; do for c in `cat $DIR/$b.txt`; do echo $c done done
valeu