Como @Kusalananda disse , você está perdendo um -c
para poder usar um script in-line.
Mas, mesmo assim, nunca incorpore o {}
no código shell, que seria uma vulnerabilidade de injeção de comando arbitrária (pense na instância de um arquivo chamado '$(reboot)'.mp3
com seu exemplo). Em vez disso, torne-o um argumento do script in-line (supondo que você precise de um script in-line aqui e que o cp
seja apenas um exemplo).
find ... -exec sh -c 'cp "$1" /home/jason/gPodder/mp3' sh {} \;
(você também não precisa de bash
apenas para isso. Seu sh
funcionará tão bem).
Ou melhor ainda, passe vários argumentos de uma só vez para cp
:
find ... -exec sh -c 'cp "$@" /home/jason/gPodder/mp3' sh {} +
Com o GNU cp
, você também pode:
find ... -exec cp -t /home/jason/gPodder/mp3 {} +