shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script para remoção de arquivos com exceção


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Script para remoção de arquivos com exceção
Date: Tue, 6 Feb 2007 12:07:35 -0200

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  <address@hidden> 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]