O ;
tem que ser seu próprio argumento separado para find
:
find /home/shredtest/ -depth -exec /home/test.sh "{}" \;
(observe o espaço entre {}
e \;
). Depois de -exec
:
All following arguments to find are taken to be arguments to the command until an argument consisting of ';' is encountered.
(de man find
). Ou seja, o argumento deve consistir em inteiramente de ;
para parar a lista de argumentos.
Você também pode usar '+' para passar muitos argumentos de arquivo de uma vez, o que também deve ser seu próprio argumento.
Note também que em find /home/shredtest/*
o *
é desnecessário: find
irá percorrer o próprio conteúdo do diretório, enquanto *
será expandido pelo shell (e ocasionalmente pode não levar exatamente aos resultados que você queria ).