Tanto {} como ; têm significados especiais em bash , mas no contexto de find , é find que realmente interpreta esses dois (na verdade, queremos que find interprete esses dois).
Primeiro, -exec é uma ação de find . {} e ; são parâmetros especiais para o predicado -exec de find .
A sintaxe da ação -exec é:
-exec command ;
ou
-exec command {} +
Portanto, precisamos evitar que {} e ; sejam interpretados pela shell antes.
No contexto de find .... -exec :
-
{}indica (contém) o (s) resultado (s) da expressãofind, ou seja,find . -name "FILE-TO-FIND"neste caso. Observe que chaves vazias{}não têm significado especial para o shell, então podemos fugir sem fugir de{} -
Como
bashtrata;como o final de um comando, precisamos escapar disso com\, ou seja,\;, para que possa ser analisado por-exece não porbash.