Você está perdendo o espaço entre {}
e ;
:
find . -type d -exec ./script.sh {} \;
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?
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 \{} \;
Tags bash find shell shell-script