Sergio,

todas os argumentos que vc passa para um programa, comando ou função
no bash  , incluindo o -exec do find, são lidos do começo para o fim
da linha de instrução. Alguns caracteres especiais podem terminar essa
leitura, como o caso de um comentario :

echo ola # isso nao sera impresso

o '\n' nova-linha e o ';' são sinais que a linha de instrução terminou

ls ; echo 'fim'

isso vale para os pipes, quando vc coloca um | grep ... apos o seu
find, a sua linha de instrução termina ali, e logo começa uma outra.
Vc teria q substituir então a opção -exec por alguma instrução que
fizesse algo semenhante.

Vc pode continuar a lógica usando um terceiro pipe para um xargs, de uma olhada

http://pastebin.com/876672

(tomei a liberdade para simplificar o script ao meu bel prazer, numa
atividade nerd relaxante ao som de pink floyd)

Deve funcionar agora, dê uma olhada. Abraço.
On 2/6/07, Sergio Maia Rabelo  <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Olá pessoal, olhando alguns scripts aqui na lista de remoção de arquivos no
>  servidor, resolvi mesclar dois deles mas está acontecendo um erro no comando
>  exec.
>  Vejam o erro e abaixo segue o script.
>
>  extensao: line 12: -exec: command not found
>
>  #!/bin/bash
>  echo -n "Digite o diretorio de partida: "
>  read DIR
>  echo -n "Existe algum diretorio de excecao: "
>  read RESP
>          if [ $RESP = "S" ]
>                  then
>                  echo -n "Digite o diretorio de excecao: "
>                  read DIR1
>                  echo -n "Digite entao a extensao: "
>                  read EXT
>                  find $DIR -iname "*.$EXT"|grep -vE $DIR1|-exec rm {} \;
>                  echo "Arquivos apagados! Aguarde..."
>                  sleep 3
>                  exit
>                  elif [ $RESP = "N" ]
>                          then
>                          echo -n "Digite a  extensao:"
>                          read EXT1
>                          find $DIR -iname "*.$EXT1" -exec rm {} \;
>                          echo "Arquivos apagados! Aguarde..."
>                          sleep 3
>          fi
>  exit
>
>  Valeu pessoal!
>  Sérgio Maia
>
>  [As partes desta mensagem que não continham texto foram removidas]
>
>                    



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer

Responder a