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
bash
trata;
como o final de um comando, precisamos escapar disso com\
, ou seja,\;
, para que possa ser analisado por-exec
e não porbash
.