Como executar "find -exec script {} \;

6

Eu tenho um script que altera as propriedades dos arquivos para uma pasta.

Aqui está a árvore de exemplos:

dir 1
    --file 1
    --file 2
    --file 3
dir 2
    --file 1
    --file 2
dir 3
    --file 1
    --file 2
    --file 3

Estou executando este comando no terminal para o qual eu quero executar o script de shell (script.sh) para cada diretório

find . -type d -exec ./script.sh {}\;

não roda e comete erros:

find: missing argument to '-exec'

O que estou perdendo aqui?

    
por Ashwin kumar 28.03.2013 / 19:09

2 respostas

12

Você está perdendo o espaço entre {} e ; :

find . -type d -exec ./script.sh {} \;
    
por 28.03.2013 / 19:18
0

tente

find . -type d -exec /path/to/script.sh '{}' \;

ou

find . -type d -exec /path/to/script.sh \{\} \;

ou (acredito que funcionará também, já que "}" é inequivocamente não especial nesse caso, portanto literário):

find . -type d -exec /path/to/script.sh \{} \;
    
por 28.03.2013 / 19:17